web-dev-qa-db-ja.com

DockerfileオーバーライドENV変数

Dockerfileがあり、APIをデフォルト値で構成できるようにしたいと思います。

FROM socialengine/nginx-spa

ENV API_URL localhost:6007

したがって、このイメージを実行すると、localhost:6007を次のようなものでオーバーライドできるようになります。

docker run -e API_URL = production.com:6007 ui

これは機能せず、これを行う方法の明確な説明が見つかりません。

何かアドバイス?

20
Proximo

説明した内容は正常に機能するはずです。与えられた:

$ cat Dockerfile
FROM socialengine/nginx-spa
ENV API_URL localhost:6007
$ docker build -t ui .
[...]

このことを考慮:

$ docker run -it --rm ui env | grep API_URL
API_URL=localhost:6007

に比べ:

$ docker run -it --rm -e API_URL='production:6007' ui env | grep API_URL
API_URL=production:6007

-e VARNAME=varvalueコマンドラインでdocker runを渡すと、Dockerfileのデフォルトセットがオーバーライドされます。

異なる動作が見られる場合は、質問を更新して、実行中のコマンドと関連する出力を正確に表示してください。

更新

視聴の楽しみのために記録された完全な例は次のとおりです。

https://asciinema.org/a/a5a2n3exlyh4jkii4k0ivvqmd

32
larsks