improve copy around AuFS problem
[discourse_docker.git] / README.md
index c425c0af023fb5563df130651d1a43201bcb4db5..980715c632b5f31c9e045bfe1b093f25553fd0b5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,35 +1,16 @@
 ### About
 
-- [Docker](https://www.docker.io/) is an open source project to pack, ship and run any Linux application in a lighter weight, faster container than a traditional virtual machine.
+- [Docker](https://docker.com/) is an open source project to pack, ship and run any Linux application in a lighter weight, faster container than a traditional virtual machine.
 
 - Docker makes it much easier to deploy [a Discourse forum](https://github.com/discourse/discourse) on your servers and keep it updated. For background, see [Sam's blog post](http://samsaffron.com/archive/2013/11/07/discourse-in-a-docker-container).
 
 - The templates and base image configure Discourse with the Discourse team's recommended optimal defaults.
 
-
-### IMPORTANT: Before You Start
-
-1. Make sure you're running a **64 bit** version of either [Ubuntu 12.04 LTS](http://releases.ubuntu.com/precise/),  or [Ubuntu 14.04 LTS](http://releases.ubuntu.com/14.04/).
-1. Upgrade to the [latest version of Docker](http://docs.docker.io/en/latest/installation/ubuntulinux/).
-1. Create a directory for Discourse Docker (the expected path is `/var/docker`): `install -g docker -m 2775 -d /var/docker`
-1. Run the docker installation and launcher as **root** or a member of the **docker** group.
-1. Add your user account to the docker group: `usermod -a -G docker yourusername` and re-login.
-
-If you do not do any of the above, as RoboCop once said, ["there will be… trouble."](http://www.youtube.com/watch?v=XxarhampSNI) *Please double check the above list before proceeding!*
-
 ### Getting Started
 
-The simplest way to get started is the  **standalone** template:
-
-1. **Clone** this project from github into `/var/docker` on your server: `git clone https://github.com/discourse/discourse_docker.git /var/docker`
-2. **Copy** the standalone sample into the containers directory: `cp samples/standalone.yml containers/app.yml`
-3. **Edit** `containers/app.yml` with your environment specific information
-  - [bindings](#expose)
-  - [volumes](#volumes)
-4. **Bootstrap** the image: `sudo ./launcher bootstrap app`
-5. **Start** the image: `sudo ./launcher start app`
+The simplest way to get started is via the **standalone** template, which can be installed in 30 minutes or less. For detailed install instructions, see
 
-Note: you can add yourself to the Docker group if you wish to avoid `sudo` with `usermod -aG docker <your-user-name>`.
+https://github.com/discourse/discourse/blob/master/docs/INSTALL-digital-ocean.md
 
 ### Directory Structure
 
@@ -43,7 +24,7 @@ This directory is for container definitions for your various Discourse container
 
 #### `/samples`
 
-Sample container definitions you may use to bootstrap your environment. You can copy and amend templates here into the containers directory.
+Sample container definitions you may use to bootstrap your environment. You can copy templates from here into the containers directory.
 
 #### `/shared`
 
@@ -55,11 +36,11 @@ Placeholder spot for shared volumes with various Discourse containers. You may e
 
 #### `/image`
 
-Dockerfile for both the base image `samsaffron/discourse_base` and discourse image `samsaffron/discourse`.
+Dockerfile for both the base image `/discourse_base` and discourse image `/discourse`.
 
-- `samsaffron/discourse_base` contains all the OS dependencies including sshd, runit, postgres, nginx, ruby.
+- `/discourse_base` contains all the OS dependencies including sshd, runit, postgres, nginx, ruby.
 
-- `samsaffron/discourse` builds on the base image and configures a discourse user and `/var/www/discourse` directory for the Discourse source.
+- `/discourse` builds on the base image and configures a discourse user and `/var/www/discourse` directory for the Discourse source.
 
 The Docker repository will always contain the latest built version at: https://index.docker.io/u/samsaffron/discourse/ , you should not need to build the base image.
 
@@ -68,18 +49,20 @@ The Docker repository will always contain the latest built version at: https://i
 The base directory contains a single bash script which is used to manage containers. You can use it to "bootstrap" a new container, ssh in, start, stop and destroy a container.
 
 ```
-Usage: launcher COMMAND CONFIG
+Usage: launcher COMMAND CONFIG [--skip-prereqs]
 Commands:
     start:      Start/initialize a container
     stop:       Stop a running container
     restart:    Restart a container
     destroy:    Stop and remove a container
+    enter:      Use nsenter to enter a container
     ssh:        Start a bash shell in a running container
     logs:       Docker logs for container
+    mailtest:   Test the mail settings in a container
     bootstrap:  Bootstrap a container for the config based on a template
+    rebuild:    Rebuild a container (destroy old, bootstrap, start new)
 ```
 
-
 ### Container Configuration
 
 The beginning of the container definition will contain 3 "special" sections:
@@ -121,12 +104,10 @@ Expose a directory inside the host inside the container.
 
 The Docker setup gives you multiple upgrade options:
 
-1. Use the front end at http://yoursite.com/admin/docker to upgrade an already running image.
+1. Use the front end at http://yoursite.com/admin/upgrade to upgrade an already running image.
 
-2. Create a new base image by running:
-  - `./launcher destroy my_image`
-  - `./launcher bootstrap my_image`
-  - `./launcher start my_image`
+2. Create a new base image manually by running:
+  - `./launcher rebuild my_image`
 
 ### Single Container vs. Multiple Container
 
@@ -156,7 +137,7 @@ You can ssh into your container using `./launcher ssh my_container`, we will aut
 
 Spawn a shell inside your container using `./launcher enter my_container`. This is the most foolproof method if you have host root access.
 
-You got network errors trying to retrieve code from `github.com` or `rubygems.org`? Try again - sometimes there are temporary interruptions and a retry is all it takes.
+If you see network errors trying to retrieve code from `github.com` or `rubygems.org` try again - sometimes there are temporary interruptions and a retry is all it takes.
 
 Behind a proxy network with no direct access to the Internet? Add proxy information to the container environment by adding to the existing `env` block in the `container.yml` file: