centOsをベースとしてDockerfileを使用してdockerイメージを構築するタスクに取り組んでいます。 dockerfile内のステップの1つでは、プロキシの背後で動作するためにhttp_proxyおよびhttps_proxy ENV変数を設定する必要があります。
このDockerfileは異なるプロキシを持つ複数のチームで使用されるため、各チームのDockerfileを編集する必要はありません。代わりに、ビルド時にENV変数を渡すことができるソリューションを探しています。
Sudo docker build -e http_proxy = somevalue.
これを提供するオプションが既にあるかどうかはわかりません。何か不足していますか?
コンテナは、環境変数のように機能する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
ファイルの変数置換 を使用できます。
私は同じ状況に直面しました。
Sin30の答えによると、かなりの解決策はシェルを使用することです。
CMD ["sh", "-c", "cd /usr/local/etc/php && ln -sf php.ini-$APP_ENV php.ini"]