2017-09-06 3 views
1

シェルスクリプトの.envファイルに定義されている環境変数にアクセスするにはどうしたらいいですか?Dockerfileシェルスクリプトの.envファイルから環境変数の値を取得する方法は?

.envファイル

USERNAME=user 
PASSWORD=pass 

Dockerfile

.... 

COPY ./compose/django/celery/worker/start_celery_flower.sh /start_celery_flower.sh 
RUN sed -i 's/\r//' /start_celery_flower.sh 
RUN chmod +x /start_celery_flower.sh 

.... 

私はシェルスクリプトで$USERNAMEを使用してみましたが、それは動作しません。私は、コンテナ内で実行されているアプリケーションでこれらの変数にアクセスすることができます。

答えて

1
docker build $(cat .env | xargs -n1 echo '--build-arg' | tr '\n' ' ') . 

そして、あなたのDockerfileに基本的にあなたが過去--build、引数を使用して引数を構築する必要があります

ARG USERNAME 
ARG PASSWORD 

を追加します。私が掲示したコマンドは、ファイルから複数のコマンドを取得するのに役立ちます。

編集-1

今、あなたはドッカー-構成する

set -a 
source .env 
set +a 
docker-compose up --build -d 
+0

どのように送信する前に変数をエクスポートする必要が

version: '3' services: web: build: context: . args: - USERNAME=$USERNAME - PASSWORD=$PASSWORD 

以下のようなドッキングウィンドウ・コン使用で使用するには私はドッカーの作成でそれを使用しますか?私は作成ファイルを使用しています。 –

+0

@AshishGupta、編集をご覧ください –

関連する問題