Merge pull request #1575 from moxiegirl/fix-yaml-code

Updating from three ticks to code block
This commit is contained in:
Aanand Prasad 2015-06-19 11:55:57 -07:00
commit 37ee6b0c19
1 changed files with 116 additions and 171 deletions

View File

@ -24,11 +24,9 @@ specify them again in `docker-compose.yml`.
Tag or partial image ID. Can be local or remote - Compose will attempt to Tag or partial image ID. Can be local or remote - Compose will attempt to
pull if it doesn't exist locally. pull if it doesn't exist locally.
``` image: ubuntu
image: ubuntu image: orchardup/postgresql
image: orchardup/postgresql image: a4bc65fd
image: a4bc65fd
```
### build ### build
@ -38,9 +36,7 @@ itself. This directory is also the build context that is sent to the Docker daem
Compose will build and tag it with a generated name, and use that image thereafter. Compose will build and tag it with a generated name, and use that image thereafter.
``` build: /path/to/build/dir
build: /path/to/build/dir
```
### dockerfile ### dockerfile
@ -48,17 +44,13 @@ Alternate Dockerfile.
Compose will use an alternate file to build with. Compose will use an alternate file to build with.
``` dockerfile: Dockerfile-alternate
dockerfile: Dockerfile-alternate
```
### command ### command
Override the default command. Override the default command.
``` command: bundle exec thin -p 3000
command: bundle exec thin -p 3000
```
<a name="links"></a> <a name="links"></a>
### links ### links
@ -67,21 +59,17 @@ Link to containers in another service. Either specify both the service name and
the link alias (`SERVICE:ALIAS`), or just the service name (which will also be the link alias (`SERVICE:ALIAS`), or just the service name (which will also be
used for the alias). used for the alias).
``` links:
links: - db
- db - db:database
- db:database - redis
- redis
```
An entry with the alias' name will be created in `/etc/hosts` inside containers An entry with the alias' name will be created in `/etc/hosts` inside containers
for this service, e.g: for this service, e.g:
``` 172.17.2.186 db
172.17.2.186 db 172.17.2.186 database
172.17.2.186 database 172.17.2.187 redis
172.17.2.187 redis
```
Environment variables will also be created - see the [environment variable Environment variables will also be created - see the [environment variable
reference](env.md) for details. reference](env.md) for details.
@ -93,29 +81,23 @@ of Compose, especially for containers that provide shared or common services.
`external_links` follow semantics similar to `links` when specifying both the `external_links` follow semantics similar to `links` when specifying both the
container name and the link alias (`CONTAINER:ALIAS`). container name and the link alias (`CONTAINER:ALIAS`).
``` external_links:
external_links: - redis_1
- redis_1 - project_db_1:mysql
- project_db_1:mysql - project_db_1:postgresql
- project_db_1:postgresql
```
### extra_hosts ### extra_hosts
Add hostname mappings. Use the same values as the docker client `--add-host` parameter. Add hostname mappings. Use the same values as the docker client `--add-host` parameter.
``` extra_hosts:
extra_hosts: - "somehost:162.242.195.82"
- "somehost:162.242.195.82" - "otherhost:50.31.209.229"
- "otherhost:50.31.209.229"
```
An entry with the ip address and hostname will be created in `/etc/hosts` inside containers for this service, e.g: An entry with the ip address and hostname will be created in `/etc/hosts` inside containers for this service, e.g:
``` 162.242.195.82 somehost
162.242.195.82 somehost 50.31.209.229 otherhost
50.31.209.229 otherhost
```
### ports ### ports
@ -127,46 +109,38 @@ port (a random host port will be chosen).
> parse numbers in the format `xx:yy` as sexagesimal (base 60). For this reason, > parse numbers in the format `xx:yy` as sexagesimal (base 60). For this reason,
> we recommend always explicitly specifying your port mappings as strings. > we recommend always explicitly specifying your port mappings as strings.
``` ports:
ports: - "3000"
- "3000" - "8000:8000"
- "8000:8000" - "49100:22"
- "49100:22" - "127.0.0.1:8001:8001"
- "127.0.0.1:8001:8001"
```
### expose ### expose
Expose ports without publishing them to the host machine - they'll only be Expose ports without publishing them to the host machine - they'll only be
accessible to linked services. Only the internal port can be specified. accessible to linked services. Only the internal port can be specified.
``` expose:
expose: - "3000"
- "3000" - "8000"
- "8000"
```
### volumes ### volumes
Mount paths as volumes, optionally specifying a path on the host machine Mount paths as volumes, optionally specifying a path on the host machine
(`HOST:CONTAINER`), or an access mode (`HOST:CONTAINER:ro`). (`HOST:CONTAINER`), or an access mode (`HOST:CONTAINER:ro`).
``` volumes:
volumes: - /var/lib/mysql
- /var/lib/mysql - cache/:/tmp/cache
- cache/:/tmp/cache - ~/configs:/etc/configs/:ro
- ~/configs:/etc/configs/:ro
```
### volumes_from ### volumes_from
Mount all of the volumes from another service or container. Mount all of the volumes from another service or container.
``` volumes_from:
volumes_from: - service_name
- service_name - container_name
- container_name
```
### environment ### environment
@ -175,15 +149,13 @@ Add environment variables. You can use either an array or a dictionary.
Environment variables with only a key are resolved to their values on the Environment variables with only a key are resolved to their values on the
machine Compose is running on, which can be helpful for secret or host-specific values. machine Compose is running on, which can be helpful for secret or host-specific values.
``` environment:
environment: RACK_ENV: development
RACK_ENV: development SESSION_SECRET:
SESSION_SECRET:
environment: environment:
- RACK_ENV=development - RACK_ENV=development
- SESSION_SECRET - SESSION_SECRET
```
### env_file ### env_file
@ -194,22 +166,18 @@ If you have specified a Compose file with `docker-compose -f FILE`, paths in
Environment variables specified in `environment` override these values. Environment variables specified in `environment` override these values.
``` env_file: .env
env_file: .env
env_file: env_file:
- ./common.env - ./common.env
- ./apps/web.env - ./apps/web.env
- /opt/secrets.env - /opt/secrets.env
```
Compose expects each line in an env file to be in `VAR=VAL` format. Lines Compose expects each line in an env file to be in `VAR=VAL` format. Lines
beginning with `#` (i.e. comments) are ignored, as are blank lines. beginning with `#` (i.e. comments) are ignored, as are blank lines.
``` # Set Rails/Rack environment
# Set Rails/Rack environment RACK_ENV=development
RACK_ENV=development
```
### extends ### extends
@ -222,30 +190,26 @@ Here's a simple example. Suppose we have 2 files - **common.yml** and
**common.yml** **common.yml**
``` webapp:
webapp: build: ./webapp
build: ./webapp environment:
environment: - DEBUG=false
- DEBUG=false - SEND_EMAILS=false
- SEND_EMAILS=false
```
**development.yml** **development.yml**
``` web:
web: extends:
extends: file: common.yml
file: common.yml service: webapp
service: webapp ports:
ports: - "8000:8000"
- "8000:8000" links:
links: - db
- db environment:
environment: - DEBUG=true
- DEBUG=true db:
db: image: postgres
image: postgres
```
Here, the `web` service in **development.yml** inherits the configuration of Here, the `web` service in **development.yml** inherits the configuration of
the `webapp` service in **common.yml** - the `build` and `environment` keys - the `webapp` service in **common.yml** - the `build` and `environment` keys -
@ -262,17 +226,15 @@ Add metadata to containers using [Docker labels](http://docs.docker.com/userguid
It's recommended that you use reverse-DNS notation to prevent your labels from conflicting with those used by other software. It's recommended that you use reverse-DNS notation to prevent your labels from conflicting with those used by other software.
``` labels:
labels: com.example.description: "Accounting webapp"
com.example.description: "Accounting webapp" com.example.department: "Finance"
com.example.department: "Finance" com.example.label-with-empty-value: ""
com.example.label-with-empty-value: ""
labels: labels:
- "com.example.description=Accounting webapp" - "com.example.description=Accounting webapp"
- "com.example.department=Finance" - "com.example.department=Finance"
- "com.example.label-with-empty-value" - "com.example.label-with-empty-value"
```
### log driver ### log driver
@ -282,27 +244,22 @@ Allowed values are currently ``json-file``, ``syslog`` and ``none``. The list wi
The default value is json-file. The default value is json-file.
``` log_driver: "json-file"
log_driver: "json-file" log_driver: "syslog"
log_driver: "syslog" log_driver: "none"
log_driver: "none"
```
### net ### net
Networking mode. Use the same values as the docker client `--net` parameter. Networking mode. Use the same values as the docker client `--net` parameter.
``` net: "bridge"
net: "bridge" net: "none"
net: "none" net: "container:[name or id]"
net: "container:[name or id]" net: "host"
net: "host"
```
### pid ### pid
``` pid: "host"
pid: "host"
```
Sets the PID mode to the host PID mode. This turns on sharing between Sets the PID mode to the host PID mode. This turns on sharing between
container and the host operating system the PID address space. Containers container and the host operating system the PID address space. Containers
@ -313,86 +270,74 @@ containers in the bare-metal machine's namespace and vise-versa.
Custom DNS servers. Can be a single value or a list. Custom DNS servers. Can be a single value or a list.
``` dns: 8.8.8.8
dns: 8.8.8.8 dns:
dns: - 8.8.8.8
- 8.8.8.8 - 9.9.9.9
- 9.9.9.9
```
### cap_add, cap_drop ### cap_add, cap_drop
Add or drop container capabilities. Add or drop container capabilities.
See `man 7 capabilities` for a full list. See `man 7 capabilities` for a full list.
``` cap_add:
cap_add: - ALL
- ALL
cap_drop: cap_drop:
- NET_ADMIN - NET_ADMIN
- SYS_ADMIN - SYS_ADMIN
```
### dns_search ### dns_search
Custom DNS search domains. Can be a single value or a list. Custom DNS search domains. Can be a single value or a list.
``` dns_search: example.com
dns_search: example.com dns_search:
dns_search: - dc1.example.com
- dc1.example.com - dc2.example.com
- dc2.example.com
```
### devices ### devices
List of device mappings. Uses the same format as the `--device` docker List of device mappings. Uses the same format as the `--device` docker
client create option. client create option.
``` devices:
devices: - "/dev/ttyUSB0:/dev/ttyUSB0"
- "/dev/ttyUSB0:/dev/ttyUSB0"
```
### security_opt ### security_opt
Override the default labeling scheme for each container. Override the default labeling scheme for each container.
``` security_opt:
security_opt: - label:user:USER
- label:user:USER - label:role:ROLE
- label:role:ROLE
```
### working\_dir, entrypoint, user, hostname, domainname, mac\_address, mem\_limit, privileged, restart, stdin\_open, tty, cpu\_shares, cpuset, read\_only ### working\_dir, entrypoint, user, hostname, domainname, mac\_address, mem\_limit, privileged, restart, stdin\_open, tty, cpu\_shares, cpuset, read\_only
Each of these is a single value, analogous to its Each of these is a single value, analogous to its
[docker run](https://docs.docker.com/reference/run/) counterpart. [docker run](https://docs.docker.com/reference/run/) counterpart.
``` cpu_shares: 73
cpu_shares: 73 cpuset: 0,1
cpuset: 0,1
working_dir: /code working_dir: /code
entrypoint: /code/entrypoint.sh entrypoint: /code/entrypoint.sh
user: postgresql user: postgresql
hostname: foo hostname: foo
domainname: foo.com domainname: foo.com
mac_address: 02:42:ac:11:65:43 mac_address: 02:42:ac:11:65:43
mem_limit: 1000000000 mem_limit: 1000000000
privileged: true privileged: true
restart: always restart: always
stdin_open: true stdin_open: true
tty: true tty: true
read_only: true read_only: true
```
## Compose documentation ## Compose documentation