Ответ 1
Эта функция была добавлена в Compose 1.6.
Ссылка: https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
Docker 1.9 позволяет передавать аргументы в файл докеров. См. Ссылку: https://docs.docker.com/engine/reference/builder/#arg
Как я могу передать те же самые исправления в docker-compose.yml?
Приведите пример, если это возможно.
Эта функция была добавлена в Compose 1.6.
Ссылка: https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
Теперь это можно сделать, как docker-compose v2 + как часть объекта build
;
Докер-compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
См. докеры составляют документы.
В приведенном выше примере "var1" и "var2" будут отправлены в среду сборки.
Примечание: любые переменные env (заданные с помощью блока environment
), которые имеют то же имя, что и переменная args
, переопределяют эту переменную.
Теперь docker-compose
поддерживает подстановку переменных.
Compose использует значения переменных из среды оболочки, в которой выполняется docker-compose
. Например, предположим, что оболочка содержит POSTGRES_VERSION=9.3
, и вы поставляете эту конфигурацию в файле docker-compose.yml
:
db:
image: "postgres:${POSTGRES_VERSION}"
Когда вы запускаете docker-compose up
с этой конфигурацией, Compose ищет переменную среды POSTGRES_VERSION
в оболочке и заменяет ее значение. В этом примере Compose разрешает image
до postgres:9.3
перед запуском конфигурации.