docker_compose.yaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. command: docker compose
  2. short: Docker Compose
  3. long: |-
  4. You can use compose subcommand, `docker compose [-f <arg>...] [options] [COMMAND] [ARGS...]`, to build and manage
  5. multiple services in Docker containers.
  6. ### Use `-f` to specify the name and path of one or more Compose files
  7. Use the `-f` flag to specify the location of a Compose configuration file.
  8. #### Specifying multiple Compose files
  9. You can supply multiple `-f` configuration files. When you supply multiple files, Compose combines them into a single
  10. configuration. Compose builds the configuration in the order you supply the files. Subsequent files override and add
  11. to their predecessors.
  12. For example, consider this command line:
  13. ```console
  14. $ docker compose -f docker-compose.yml -f docker-compose.admin.yml run backup_db
  15. ```
  16. The `docker-compose.yml` file might specify a `webapp` service.
  17. ```yaml
  18. services:
  19. webapp:
  20. image: examples/web
  21. ports:
  22. - "8000:8000"
  23. volumes:
  24. - "/data"
  25. ```
  26. If the `docker-compose.admin.yml` also specifies this same service, any matching fields override the previous file.
  27. New values, add to the `webapp` service configuration.
  28. ```yaml
  29. services:
  30. webapp:
  31. build: .
  32. environment:
  33. - DEBUG=1
  34. ```
  35. When you use multiple Compose files, all paths in the files are relative to the first configuration file specified
  36. with `-f`. You can use the `--project-directory` option to override this base path.
  37. Use a `-f` with `-` (dash) as the filename to read the configuration from stdin. When stdin is used all paths in the
  38. configuration are relative to the current working directory.
  39. The `-f` flag is optional. If you don’t provide this flag on the command line, Compose traverses the working directory
  40. and its parent directories looking for a `compose.yaml` or `docker-compose.yaml` file.
  41. #### Specifying a path to a single Compose file
  42. You can use the `-f` flag to specify a path to a Compose file that is not located in the current directory, either
  43. from the command line or by setting up a `COMPOSE_FILE` environment variable in your shell or in an environment file.
  44. For an example of using the `-f` option at the command line, suppose you are running the Compose Rails sample, and
  45. have a `compose.yaml` file in a directory called `sandbox/rails`. You can use a command like `docker compose pull` to
  46. get the postgres image for the db service from anywhere by using the `-f` flag as follows:
  47. ```console
  48. $ docker compose -f ~/sandbox/rails/compose.yaml pull db
  49. ```
  50. ### Use `-p` to specify a project name
  51. Each configuration has a project name. If you supply a `-p` flag, you can specify a project name. If you don’t
  52. specify the flag, Compose uses the current directory name.
  53. Project name can also be set by `COMPOSE_PROJECT_NAME` environment variable.
  54. Many Compose subcommands can be run without a Compose file by passing
  55. the project name.
  56. ```console
  57. $ docker compose -p my_project ps -a
  58. NAME SERVICE STATUS PORTS
  59. my_project_demo_1 demo running
  60. $ docker compose -p my_project logs
  61. demo_1 | PING localhost (127.0.0.1): 56 data bytes
  62. demo_1 | 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.095 ms
  63. ```
  64. ### Use profiles to enable optional services
  65. Use `--profile` to specify one or more active profiles
  66. Calling `docker compose --profile frontend up` will start the services with the profile `frontend` and services
  67. without any specified profiles.
  68. You can also enable multiple profiles, e.g. with `docker compose --profile frontend --profile debug up` the profiles `frontend` and `debug` will be enabled.
  69. Profiles can also be set by `COMPOSE_PROFILES` environment variable.
  70. ### Configuring parallelism
  71. Use `--parallel` to specify the maximum level of parallelism for concurrent engine calls.
  72. Calling `docker compose --parallel 1 pull` will pull the pullable images defined in the Compose file
  73. one at a time. This can also be used to control build concurrency.
  74. Parallelism can also be set by the `COMPOSE_PARALLEL_LIMIT` environment variable.
  75. ### Set up environment variables
  76. You can set environment variables for various docker compose options, including the `-f`, `-p` and `--profiles` flags.
  77. Setting the `COMPOSE_FILE` environment variable is equivalent to passing the `-f` flag,
  78. `COMPOSE_PROJECT_NAME` environment variable does the same as the `-p` flag,
  79. `COMPOSE_PROFILES` environment variable is equivalent to the `--profiles` flag
  80. and `COMPOSE_PARALLEL_LIMIT` does the same as the `--parallel` flag.
  81. If flags are explicitly set on the command line, the associated environment variable is ignored.
  82. Setting the `COMPOSE_IGNORE_ORPHANS` environment variable to `true` will stop docker compose from detecting orphaned
  83. containers for the project.
  84. usage: docker compose
  85. pname: docker
  86. plink: docker.yaml
  87. cname:
  88. - docker compose build
  89. - docker compose config
  90. - docker compose cp
  91. - docker compose create
  92. - docker compose down
  93. - docker compose events
  94. - docker compose exec
  95. - docker compose images
  96. - docker compose kill
  97. - docker compose logs
  98. - docker compose ls
  99. - docker compose pause
  100. - docker compose port
  101. - docker compose ps
  102. - docker compose pull
  103. - docker compose push
  104. - docker compose restart
  105. - docker compose rm
  106. - docker compose run
  107. - docker compose start
  108. - docker compose stop
  109. - docker compose top
  110. - docker compose unpause
  111. - docker compose up
  112. - docker compose version
  113. clink:
  114. - docker_compose_build.yaml
  115. - docker_compose_config.yaml
  116. - docker_compose_cp.yaml
  117. - docker_compose_create.yaml
  118. - docker_compose_down.yaml
  119. - docker_compose_events.yaml
  120. - docker_compose_exec.yaml
  121. - docker_compose_images.yaml
  122. - docker_compose_kill.yaml
  123. - docker_compose_logs.yaml
  124. - docker_compose_ls.yaml
  125. - docker_compose_pause.yaml
  126. - docker_compose_port.yaml
  127. - docker_compose_ps.yaml
  128. - docker_compose_pull.yaml
  129. - docker_compose_push.yaml
  130. - docker_compose_restart.yaml
  131. - docker_compose_rm.yaml
  132. - docker_compose_run.yaml
  133. - docker_compose_start.yaml
  134. - docker_compose_stop.yaml
  135. - docker_compose_top.yaml
  136. - docker_compose_unpause.yaml
  137. - docker_compose_up.yaml
  138. - docker_compose_version.yaml
  139. options:
  140. - option: ansi
  141. value_type: string
  142. default_value: auto
  143. description: |
  144. Control when to print ANSI control characters ("never"|"always"|"auto")
  145. deprecated: false
  146. hidden: false
  147. experimental: false
  148. experimentalcli: false
  149. kubernetes: false
  150. swarm: false
  151. - option: compatibility
  152. value_type: bool
  153. default_value: "false"
  154. description: Run compose in backward compatibility mode
  155. deprecated: false
  156. hidden: false
  157. experimental: false
  158. experimentalcli: false
  159. kubernetes: false
  160. swarm: false
  161. - option: dry-run
  162. value_type: bool
  163. default_value: "false"
  164. description: Execute command in dry run mode
  165. deprecated: false
  166. hidden: true
  167. experimental: false
  168. experimentalcli: false
  169. kubernetes: false
  170. swarm: false
  171. - option: env-file
  172. value_type: stringArray
  173. default_value: '[]'
  174. description: Specify an alternate environment file.
  175. deprecated: false
  176. hidden: false
  177. experimental: false
  178. experimentalcli: false
  179. kubernetes: false
  180. swarm: false
  181. - option: file
  182. shorthand: f
  183. value_type: stringArray
  184. default_value: '[]'
  185. description: Compose configuration files
  186. deprecated: false
  187. hidden: false
  188. experimental: false
  189. experimentalcli: false
  190. kubernetes: false
  191. swarm: false
  192. - option: no-ansi
  193. value_type: bool
  194. default_value: "false"
  195. description: Do not print ANSI control characters (DEPRECATED)
  196. deprecated: false
  197. hidden: true
  198. experimental: false
  199. experimentalcli: false
  200. kubernetes: false
  201. swarm: false
  202. - option: parallel
  203. value_type: int
  204. default_value: "-1"
  205. description: Control max parallelism, -1 for unlimited
  206. deprecated: false
  207. hidden: false
  208. experimental: false
  209. experimentalcli: false
  210. kubernetes: false
  211. swarm: false
  212. - option: profile
  213. value_type: stringArray
  214. default_value: '[]'
  215. description: Specify a profile to enable
  216. deprecated: false
  217. hidden: false
  218. experimental: false
  219. experimentalcli: false
  220. kubernetes: false
  221. swarm: false
  222. - option: project-directory
  223. value_type: string
  224. description: |-
  225. Specify an alternate working directory
  226. (default: the path of the, first specified, Compose file)
  227. deprecated: false
  228. hidden: false
  229. experimental: false
  230. experimentalcli: false
  231. kubernetes: false
  232. swarm: false
  233. - option: project-name
  234. shorthand: p
  235. value_type: string
  236. description: Project name
  237. deprecated: false
  238. hidden: false
  239. experimental: false
  240. experimentalcli: false
  241. kubernetes: false
  242. swarm: false
  243. - option: verbose
  244. value_type: bool
  245. default_value: "false"
  246. description: Show more output
  247. deprecated: false
  248. hidden: true
  249. experimental: false
  250. experimentalcli: false
  251. kubernetes: false
  252. swarm: false
  253. - option: version
  254. shorthand: v
  255. value_type: bool
  256. default_value: "false"
  257. description: Show the Docker Compose version information
  258. deprecated: false
  259. hidden: true
  260. experimental: false
  261. experimentalcli: false
  262. kubernetes: false
  263. swarm: false
  264. - option: workdir
  265. value_type: string
  266. description: |-
  267. DEPRECATED! USE --project-directory INSTEAD.
  268. Specify an alternate working directory
  269. (default: the path of the, first specified, Compose file)
  270. deprecated: false
  271. hidden: true
  272. experimental: false
  273. experimentalcli: false
  274. kubernetes: false
  275. swarm: false
  276. deprecated: false
  277. experimental: false
  278. experimentalcli: false
  279. kubernetes: false
  280. swarm: false