[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
2022-03-18 12:36:52
質問
Dockerの初心者なのですが、コンテナから外部データベースにアクセスする方法が不明です。接続文字列をハードコードするのが一番良い方法なのでしょうか?
# Dockerfile
ENV DATABASE_URL amazon:rds/connection?string
解決方法は?
コンテナに対して環境変数を渡すには
-e
フラグを使用します。
起動スクリプトの例です。
sudo docker run -d -t -i -e REDIS_NAMESPACE='staging' \
-e POSTGRES_ENV_POSTGRES_PASSWORD='foo' \
-e POSTGRES_ENV_POSTGRES_USER='bar' \
-e POSTGRES_ENV_DB_NAME='mysite_staging' \
-e POSTGRES_PORT_5432_TCP_ADDR='docker-db-1.hidden.us-east-1.rds.amazonaws.com' \
-e SITE_URL='staging.mysite.com' \
-p 80:80 \
--link redis:redis \
--name container_name dockerhub_id/image_name
また、値が表示されるコマンドライン上に値を置きたくない場合は
ps
などがあります。
-e
を付けずにそのまま渡せば、現在の環境から値を引っ張ってくることができます。
=
:
sudo PASSWORD='foo' docker run [...] -e PASSWORD [...]
多くの環境変数があり、特にそれが秘密であることを意味している場合、次のようにすることができます。 環境ファイルを使用する :
$ docker run --env-file ./env.list ubuntu bash
env-file フラグは引数としてファイル名を取り、各行は VAR=VAL 形式で、 --env に渡された引数を模倣することを期待します。コメント行の先頭には # を付けるだけでよい。
関連
-
[解決済み】デーモンからのエラー応答:getsockopt: 接続が拒否された
-
クラウドネイティブ時代に求められるコアスキル Docker Advanced (Dockerネットワーク詳解)
-
[解決済み] 環境変数の値にアクセスする方法
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】FrontEnd DockerFIle.v0との解決に失敗しました。
-
[解決済み】ドッカーコンテナがすぐに終了してしまう理由
-
[解決済み】デーモンからのエラー応答:getsockopt: 接続が拒否された
-
[解決済み] Docker: 親ディレクトリからファイルを追加する
-
[解決済み] docker run --initに相当するdocker-composeは何ですか?
-
Http: サーバーが HTTPS クライアントに HTTP 応答を返した 解決策
-
接続中にDocker useエラーが発生しました。このエラーは、Docker デーモンが実行されていないことを示す可能性があります。
-
docker make image apt-get install file error debconf: unable to initialize frontend: ダイアログ
-
docker-composeによるmysqlのデプロイメントの実践
-
DockerRegistryV2 イメージの削除