X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=README.md;h=af713711c31f638b594c85cc108bd6453168cb63;hb=0edf993a55953c9d5ee8856c87825659401c92c3;hp=dcc0d2930d5409a95daf43917011c659f3e5e024;hpb=50414fec69d1070d49157dcdce306ba8297a9e71;p=discourse_docker.git diff --git a/README.md b/README.md index dcc0d29..af71371 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ 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 -https://github.com/discourse/discourse/blob/master/docs/INSTALL-digital-ocean.md +https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md ### Directory Structure @@ -32,21 +32,17 @@ Placeholder spot for shared volumes with various Discourse containers. You may e #### `/templates` -[pups](https://github.com/samsaffron/pups) managed pups templates you may use to bootstrap your environment. +[pups](https://github.com/samsaffron/pups)-managed templates you may use to bootstrap your environment. #### `/image` -Dockerfile for both the base image `/discourse_base` and discourse image `/discourse`. +Dockerfiles for Discourse; see [the README](image/README.md) for further details. -- `/discourse_base` contains all the OS dependencies including sshd, runit, postgres, nginx, ruby. - -- `/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. +The Docker repository will always contain the latest built version at: https://hub.docker.com/r/discourse/base/, you should not need to build the base image. ### Launcher -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. +The base directory contains a single bash script which is used to manage containers. You can use it to "bootstrap" a new container, enter, start, stop and destroy a container. ``` Usage: launcher COMMAND CONFIG [--skip-prereqs] @@ -55,10 +51,9 @@ Commands: 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 + enter: Use docker exec to enter a container logs: Docker logs for container - mailtest: Test the mail settings in a container + memconfig: Configure sane defaults for available RAM bootstrap: Bootstrap a container for the config based on a template rebuild: Rebuild a container (destroy old, bootstrap, start new) ``` @@ -67,7 +62,7 @@ If the environment variable "SUPERVISED" is set to true, the container won't be ### Container Configuration -The beginning of the container definition will contain 3 "special" sections: +The beginning of the container definition can contain the following "special" sections: #### templates: @@ -87,7 +82,7 @@ expose: - "127.0.0.1:20080:80" ``` -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_port]])|():[/udp]` as defined in the [docker port binding documentation](http://docs.docker.com/userguide/dockerlinks/) +Publish 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_port]])|():[/udp]` as defined in the [docker port binding documentation](http://docs.docker.com/userguide/dockerlinks/). To expose a port without publishing it, specify only the port number (e.g., `80`). #### volumes: @@ -102,6 +97,43 @@ volumes: Expose a directory inside the host to the container. +#### links: +``` +links: + - link: + name: postgres + alias: postgres +``` + +Links another container to the current container. This will add `--link postgres:postgres` +to the options when running the container. + +#### environment variables: + +Setting environment variables to the current container. + +``` +# app.yml + +env: + DISCOURSE_DB_HOST: some-host + DISCOURSE_DB_NAME: {{config}}_discourse +``` + +The above will add `-e DISCOURSE_DB_HOST=some-host -e DISCOURSE_DB_NAME=app_discourse` to the options when running the container. + +#### labels: +``` +# app.yml + +labels: + monitor: 'true' + app_name: {{config}}_discourse +``` + +Add labels to the current container. The above will add `--l monitor=true -l app_name=dev_discourse` to the options +when running the container + ### Upgrading Discourse The Docker setup gives you multiple upgrade options: @@ -135,8 +167,6 @@ For a Discourse instance to function properly Email must be set up. Use the `SMT View the container logs: `./launcher logs my_container` -You can ssh into your container using `./launcher ssh my_container`, we will automatically set up ssh access during bootstrap. - Spawn a shell inside your container using `./launcher enter my_container`. This is the most foolproof method if you have host root access. 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. @@ -165,7 +195,7 @@ installs you can ensure they are in sync by looking at `/etc/passwd` and - [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) - [Linking containers for a multiple container setup](https://meta.discourse.org/t/linking-containers-for-a-multiple-container-setup/20867) -- [Replace rubygems.org with taobao mirror to resolve network error in China](https://meta.discourse.org/t/replace-rubygems-org-with-taobao-mirror-to-resolve-network-error-in-china/21988/1) +- [Using Rubygems mirror to improve connection problem in China](https://meta.discourse.org/t/replace-rubygems-org-with-taobao-mirror-to-resolve-network-error-in-china/21988/1) License ===