dockerfile で docker イメージを構築する際に、コマンドラインで ENV 変数を渡すことできますか? 質問する

dockerfile で docker イメージを構築する際に、コマンドラインで ENV 変数を渡すことできますか? 質問する

私はdockerイメージを構築するタスクに取り組んでいますセントオスベースとしてDockerファイル. dockerfile内のステップの1つはhttp_プロキシそしてhttps_プロキシプロキシの背後で動作するために設定する必要がある ENV 変数。

このDockerfileは異なるプロキシを持つ複数のチームで使用されるため、各チームごとにDockerfileを編集する必要は避けたいと考えています。代わりに、ビルド時にENV変数を渡すことができるソリューションを探しています。例:

sudo docker build -e http_proxy=somevalue を実行します。

これを提供するオプションがすでにあるかどうかはわかりません。何か見落としているのでしょうか?

ベストアンサー1

build argumentsコンテナは、環境変数のように機能する (Docker 1.9 以降)を使用して構築できます。

方法は次のとおりです。

FROM php:7.0-fpm
ARG APP_ENV=local
ENV APP_ENV=${APP_ENV}
RUN cd /usr/local/etc/php && ln -sf php.ini-${APP_ENV} php.ini

次に本番環境コンテナを構築します。

docker build --build-arg APP_ENV=prod .

あなたの特定の問題について:

FROM debian
ENV http_proxy=${http_proxy}

そして以下を実行します:

docker build --build-arg http_proxy=10.11.24.31 .

コンテナを でビルドするとdocker-composeこれらのビルド引数をファイルで指定docker-compose.ymlするコマンドラインでは使えません。ただし、ファイル内の変数置換docker-compose.yml(環境変数を使用)

おすすめ記事