問題
Dockerfile内で以下のように、 ENV
内で呼び出しの ARG
が展開されない。
Dockerfile
FROM centos:latest ARG FOO=foo ENV OPTS='foo=${FOO} \ bar=bar \ hoge=hoge'
環境変数の確認結果
# env | grep ^OPTS OPTS=foo=${FOO} bar=bar hoge=hoge
原因と対処方法
- Bashでは変数をシングルクォートで囲むと文字列として認識される
- 変数を展開させたい場合は、代わりにダブルクォートを使用する
Dockerfile
$ cat Dockerfile FROM centos:latest ARG FOO=foo ENV OPTS="foo=${FOO} \ bar=bar \ hoge=hoge"
環境変数の確認結果
# env | grep ^OPTS OPTS=foo=foo bar=bar hoge=hoge
参考: