From c3df62472bf8714c655eeaeaa84788dd3147017c Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Fri, 19 Jun 2015 02:28:09 -0700 Subject: [PATCH] Updating from three ticks to code block Signed-off-by: Mary Anthony --- docs/yml.md | 287 +++++++++++++++++++++------------------------------- 1 file changed, 116 insertions(+), 171 deletions(-) diff --git a/docs/yml.md b/docs/yml.md index 70fb385cc..02540b3ff 100644 --- a/docs/yml.md +++ b/docs/yml.md @@ -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 pull if it doesn't exist locally. -``` -image: ubuntu -image: orchardup/postgresql -image: a4bc65fd -``` + image: ubuntu + image: orchardup/postgresql + image: a4bc65fd ### 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. -``` -build: /path/to/build/dir -``` + build: /path/to/build/dir ### dockerfile @@ -48,17 +44,13 @@ Alternate Dockerfile. Compose will use an alternate file to build with. -``` -dockerfile: Dockerfile-alternate -``` + dockerfile: Dockerfile-alternate ### command Override the default command. -``` -command: bundle exec thin -p 3000 -``` + command: bundle exec thin -p 3000 ### 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 used for the alias). -``` -links: - - db - - db:database - - redis -``` + links: + - db + - db:database + - redis An entry with the alias' name will be created in `/etc/hosts` inside containers for this service, e.g: -``` -172.17.2.186 db -172.17.2.186 database -172.17.2.187 redis -``` + 172.17.2.186 db + 172.17.2.186 database + 172.17.2.187 redis Environment variables will also be created - see the [environment variable 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 container name and the link alias (`CONTAINER:ALIAS`). -``` -external_links: - - redis_1 - - project_db_1:mysql - - project_db_1:postgresql -``` + external_links: + - redis_1 + - project_db_1:mysql + - project_db_1:postgresql ### extra_hosts Add hostname mappings. Use the same values as the docker client `--add-host` parameter. -``` -extra_hosts: - - "somehost:162.242.195.82" - - "otherhost:50.31.209.229" -``` + extra_hosts: + - "somehost:162.242.195.82" + - "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: -``` -162.242.195.82 somehost -50.31.209.229 otherhost -``` + 162.242.195.82 somehost + 50.31.209.229 otherhost ### 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, > we recommend always explicitly specifying your port mappings as strings. -``` -ports: - - "3000" - - "8000:8000" - - "49100:22" - - "127.0.0.1:8001:8001" -``` + ports: + - "3000" + - "8000:8000" + - "49100:22" + - "127.0.0.1:8001:8001" ### expose Expose ports without publishing them to the host machine - they'll only be accessible to linked services. Only the internal port can be specified. -``` -expose: - - "3000" - - "8000" -``` + expose: + - "3000" + - "8000" ### volumes Mount paths as volumes, optionally specifying a path on the host machine (`HOST:CONTAINER`), or an access mode (`HOST:CONTAINER:ro`). -``` -volumes: - - /var/lib/mysql - - cache/:/tmp/cache - - ~/configs:/etc/configs/:ro -``` + volumes: + - /var/lib/mysql + - cache/:/tmp/cache + - ~/configs:/etc/configs/:ro ### volumes_from Mount all of the volumes from another service or container. -``` -volumes_from: - - service_name - - container_name -``` + volumes_from: + - service_name + - container_name ### 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 machine Compose is running on, which can be helpful for secret or host-specific values. -``` -environment: - RACK_ENV: development - SESSION_SECRET: + environment: + RACK_ENV: development + SESSION_SECRET: -environment: - - RACK_ENV=development - - SESSION_SECRET -``` + environment: + - RACK_ENV=development + - SESSION_SECRET ### 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. -``` -env_file: .env + env_file: .env -env_file: - - ./common.env - - ./apps/web.env - - /opt/secrets.env -``` + env_file: + - ./common.env + - ./apps/web.env + - /opt/secrets.env 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. -``` -# Set Rails/Rack environment -RACK_ENV=development -``` + # Set Rails/Rack environment + RACK_ENV=development ### extends @@ -222,30 +190,26 @@ Here's a simple example. Suppose we have 2 files - **common.yml** and **common.yml** -``` -webapp: - build: ./webapp - environment: - - DEBUG=false - - SEND_EMAILS=false -``` + webapp: + build: ./webapp + environment: + - DEBUG=false + - SEND_EMAILS=false **development.yml** -``` -web: - extends: - file: common.yml - service: webapp - ports: - - "8000:8000" - links: - - db - environment: - - DEBUG=true -db: - image: postgres -``` + web: + extends: + file: common.yml + service: webapp + ports: + - "8000:8000" + links: + - db + environment: + - DEBUG=true + db: + image: postgres Here, the `web` service in **development.yml** inherits the configuration of 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. -``` -labels: - com.example.description: "Accounting webapp" - com.example.department: "Finance" - com.example.label-with-empty-value: "" + labels: + com.example.description: "Accounting webapp" + com.example.department: "Finance" + com.example.label-with-empty-value: "" -labels: - - "com.example.description=Accounting webapp" - - "com.example.department=Finance" - - "com.example.label-with-empty-value" -``` + labels: + - "com.example.description=Accounting webapp" + - "com.example.department=Finance" + - "com.example.label-with-empty-value" ### log driver @@ -282,27 +244,22 @@ Allowed values are currently ``json-file``, ``syslog`` and ``none``. The list wi The default value is json-file. -``` -log_driver: "json-file" -log_driver: "syslog" -log_driver: "none" -``` + log_driver: "json-file" + log_driver: "syslog" + log_driver: "none" ### net Networking mode. Use the same values as the docker client `--net` parameter. -``` -net: "bridge" -net: "none" -net: "container:[name or id]" -net: "host" -``` + net: "bridge" + net: "none" + net: "container:[name or id]" + net: "host" + ### pid -``` -pid: "host" -``` + pid: "host" 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 @@ -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. -``` -dns: 8.8.8.8 -dns: - - 8.8.8.8 - - 9.9.9.9 -``` + dns: 8.8.8.8 + dns: + - 8.8.8.8 + - 9.9.9.9 ### cap_add, cap_drop Add or drop container capabilities. See `man 7 capabilities` for a full list. -``` -cap_add: - - ALL + cap_add: + - ALL -cap_drop: - - NET_ADMIN - - SYS_ADMIN -``` + cap_drop: + - NET_ADMIN + - SYS_ADMIN ### dns_search Custom DNS search domains. Can be a single value or a list. -``` -dns_search: example.com -dns_search: - - dc1.example.com - - dc2.example.com -``` + dns_search: example.com + dns_search: + - dc1.example.com + - dc2.example.com ### devices List of device mappings. Uses the same format as the `--device` docker client create option. -``` -devices: - - "/dev/ttyUSB0:/dev/ttyUSB0" -``` + devices: + - "/dev/ttyUSB0:/dev/ttyUSB0" ### security_opt Override the default labeling scheme for each container. -``` -security_opt: - - label:user:USER - - label:role:ROLE -``` + security_opt: + - label:user:USER + - label:role:ROLE ### 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 [docker run](https://docs.docker.com/reference/run/) counterpart. -``` -cpu_shares: 73 -cpuset: 0,1 + cpu_shares: 73 + cpuset: 0,1 -working_dir: /code -entrypoint: /code/entrypoint.sh -user: postgresql + working_dir: /code + entrypoint: /code/entrypoint.sh + user: postgresql -hostname: foo -domainname: foo.com + hostname: foo + domainname: foo.com -mac_address: 02:42:ac:11:65:43 + mac_address: 02:42:ac:11:65:43 -mem_limit: 1000000000 -privileged: true + mem_limit: 1000000000 + privileged: true -restart: always + restart: always -stdin_open: true -tty: true -read_only: true + stdin_open: true + tty: true + read_only: true -``` ## Compose documentation