[解決済み】Dockerfileで環境変数の値を取得する
質問
Rubyアプリのコンテナを構築しています。私のアプリの設定は、環境変数に含まれています(アプリの内部で、次のように読み込まれます)。 dotenv ).
その設定変数の1つに、アプリの公開IPがあり、内部でリンクを作るのに使われています。 このIPをコンテナ内の127.0.0.1に向けるdnsmasqエントリーを追加して、コンテナ化されていないかのようにアプリのリンクをフェッチできるようにする必要があるんだ。
そのため、私は
ENV
で、環境変数をコンテナに渡します。
いくつか試してみました。
ENV REQUEST_DOMAIN $REQUEST_DOMAIN
ENV REQUEST_DOMAIN `REQUEST_DOMAIN`
環境変数の値ではなく、すべて"REQUEST_DOMAIN"文字列を渡しますが。 ホストマシンからコンテナへ環境変数の値を渡す方法はあるのでしょうか?
解決方法は?
を使用する必要があります。
ARG
ディレクティブ
をDockerfileに追加してください。
は
ARG
命令は、ビルド時にユーザーが docker build コマンドで builder に渡す変数を定義するものです。
--build-arg <varname>=<value>
フラグを使用します。
では、あなたの Dockerfile はこのような行になります。
ARG request_domain
または、デフォルト値を希望する場合。
ARG request_domain=127.0.0.1
これで、Dockerfileの中でこの変数を参照できるようになりました。
ENV request_domain=$request_domain
を実行すると、このようにコンテナが構築されます。
$ docker build --build-arg request_domain=mydomain Dockerfile
注1.
を参照した場合、画像は構築されません。
ARG
で除外していたものを、Dockerfile の
--build-arg
.
注2: Dockerfileで定義されていないビルド引数をユーザが指定した場合、警告が出力されます。
<ブロッククオート[警告] 1 つ以上のビルドアーグ [foo] が消費されませんでした。
関連
-
[解決済み] docker-machine: コマンドが見つかりません。
-
[解決済み] OOM例外がない場合、Docker-composeの終了コードは137になる
-
[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?
-
[解決済み] DockerfileのCMDとENTRYPOINTの違いは何ですか?
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
-
[解決済み] Dockerfileで、PATH環境変数を更新するには?
-
[解決済み】リモートレジストリにあるDockerイメージのすべてのタグを一覧表示するには?
-
[解決済み】Dockerfileで環境変数の値を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker-compose: ラン、エクゼクティブの違い、レイヤーはどうなるのか?
-
[解決済み] Dockerfileを散らかさずに、複数の環境変数を読み込むには?
-
[解決済み] Dockerfileで画像にタグを付けるには?重複
-
[解決済み] 不明な機関によって署名された "docker pull "証明書
-
[解決済み] Docker: 停止したDockerコンテナを表示する
-
[解決済み] 引数を受け取るシェルスクリプトでDocker Runのエントリポイントをオーバーライドする
-
[解決済み】docker-composeで単一のコンテナを再起動する方法
-
[解決済み】リモートレジストリにあるDockerイメージのすべてのタグを一覧表示するには?
-
[解決済み】アプリケーションのヘルスチェックに/healthzを使用する慣習はどこから来ているのでしょうか?
-
[解決済み] Dockerビルドで「unable to prepare context: context must be a directory」と表示される。/Users/tempUser/git/docker/Dockerfile "と表示されます。