The simplest way to get started is the **standalone** template:
-1. **Clone** this project from github: `git clone https://github.com/SamSaffron/discourse_docker.git /var/docker`
+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) (make sure you create the appropriate directories on the host)
+ - [volumes](#volumes)
4. **Bootstrap** the image: `sudo ./launcher bootstrap app`
5. **Start** the image: `sudo ./launcher start app`
#### `/image`
-Dockerfile for both the base image `samsaffron/discoruse_base` and discourse image `samsaffron/discourse`.
+Dockerfile for both the base image `samsaffron/discourse_base` and discourse image `samsaffron/discourse`.
- `samsaffron/discourse_base` contains all the OS dependencies including sshd, runit, postgres, nginx, ruby.
```
expose:
- "2222:22"
+ - "127.0.0.1:20080:80"
```
-Expose port 22 inside the container on port 2222 on ALL local host interfaces.
+Expose port 22 inside the container on port 2222 on ALL local host interfaces. In order to bind to only one interface, you may specify the host's IP address as `([<host_interface>:[host_port]])|(<host_port>):]<container_port>[/udp]` as defined in the [docker port binding documentation](http://docs.docker.io/en/latest/use/port_redirection/)
#### volumes:
1. Use the front end at http://yoursite.com/admin/docker to upgrade an already running image.
2. Create a new base image by running:
- - `./launcher bootstrap my_image`
- `./launcher destroy my_image`
+ - `./launcher bootstrap my_image`
- `./launcher start my_image`
### Single Container vs. Multiple Container
### Troubleshooting
-We strongly recommend you have ssh access to your running containers, this allows you very easily take a sneak peek at internals. The simplest way to gain access is:
-
-1. Run a terminal as root
-1. `ssh-keygen -b 2048 -t rsa -N "" -C "root's unprotected key" -f ~root/.ssh/id_rsa`
-1. Paste the contents of `~root/.ssh/id_rsa.pub` into your templates (see placeholder `YOUR_SSH_KEY` in samples)
-1. Bootstrap and run your container
-1. `./launcher ssh my_container`
-
-Or, if you're running as a regular user:
-
-1. Run a terminal
-1. `ssh-keygen -b 2048 -t rsa -N "" -C "my unprotected key" -f ~/.ssh/id_rsa`
-1. Paste the contents of `~/.ssh/id_rsa.pub` into your templates (see placeholder `YOUR_SSH_KEY` in samples)
-1. Bootstrap and run your container
-1. `./launcher ssh my_container`
+You can ssh into your container using `./launcher ssh my_container`, we will automatically set up ssh access during bootstrap.
### Security
host do not match the IDs in the guest, permissions will mismatch. On clean
installs you can ensure they are in sync by looking at `/etc/passwd` and
`/etc/group`, the Discourse account will have UID 1000.
+
+
+### Advanced topics
+
+- [Setting up SSL with Discourse Docker](https://meta.discourse.org/t/allowing-ssl-for-your-discourse-docker-setup/13847)
+- [Multisite configuration with Docker](https://meta.discourse.org/t/multisite-configuration-with-docker/14084)