私のdocker composeファイルの中には、実行中に生成したいダイナミックフィールドがあります。実際には、それは文字列テンプレートです。
environment:
- SERVER_URL:https://0.0.0.0:${PORT}
そして、この`PORT
パラメータを動的に設定したいのです。
docker-compose run <service> PORT=443
ドキュメント]1には、私が使用できると思われる ARGS
パラメータセットがあります。しかし、それらをどのようにしてコンポーズファイルの中で使用するのかについての情報はありません。
docker-composeでは、引数はdockerfile
の中でのみ利用可能であり、有効です。以下のように、先のレベルで何をしているかを指定することができます。
#dockerfile
ARG PORT
ENV SERVER_URL "https://0.0.0.0:$PORT"
ポートはdocker-compose.ymlで設定できます。
build:
context: .
args:
- PORT=443
いずれにしても、これは環境変数です。もしそれが適切であれば、runコマンドで渡すことができます。
PORT=443 docker-compose run <service>
#or
docker-compose run <service> -e PORT=443
これは、stack deploy
で可能です。
環境セクションのコンポーズファイルの例。
- MY_VARIABLE_NAME=${MY_VARIABLE_VALUE}
Stack Deploy Command (WindowsのGitbashから実行しました)。
MY_VARIABLE_VALUE=some-value docker stack deploy --compose-file compose_file_here stackname
となっています。
**参考にしてください。 このGithubの投稿を参照してくださいここ。