Docker 1.9では、引数をdockerfileに渡すことができます。リンクを参照してください: 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
これは、build
オブジェクトの一部としてdocker-compose v2 +の時点で実行できます。
docker-compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
docker compose docs を参照してください。
上記の例では、「var1」と「var2」がビルド環境に送信されます。
注:environment
変数と同じ名前を持つenv変数(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
に解決します。