[解決済み] docker-compose コンテナで環境変数を最小限のダウンタイムで再ロードするには?
2023-04-19 08:15:21
質問
docker-compose.yml
version: '2'
services:
app:
build:
context: .
command: python src/app.py
restart: on-failure
depends_on:
- db
environment:
- TJBOT_DB_HOST=db
- TJBOT_API_KEY
- TJBOT_AUTO_QUESTION_TIME
env_file:
- .env
db:
image: mongo:3.0.14
volumes:
- mongodbdata:/data/db
volumes:
mongodbdata:
を変更すると
.env
ファイルを変更した場合、最小限のダウンタイムで新しい環境変数を使用するためにコンテナを再ロードするにはどうしたらよいでしょうか?
どのように解決するのですか?
docker-composeでymlを実行している場合は、単に
docker-compose up -d
を実行すれば、変更のあるコンテナはすべて再作成され、変更のないサービスはすべてそのまま残されます。
$ cat docker-compose.env2.yml
version: '2'
services:
test:
image: busybox
# command: env
command: tail -f /dev/null
environment:
- MY_VAR=hello
- MY_VAR2=world
test2:
image: busybox
command: tail -f /dev/null
environment:
- MY_VAR=same ole same ole
$ docker-compose -f docker-compose.env2.yml up -d
Creating network "test_default" with the default driver
Creating test_test_1
Creating test_test2_1
$ vi docker-compose.env2.yml # edit the file to change MY_VAR
$ docker-compose -f docker-compose.env2.yml up -d
Recreating test_test_1
test_test2_1 is up-to-date
コンテナを実行する場合は
docker stack deploy -c docker-compose.yml
として実行すると、サービスのローリングアップデートを行うことができ、サービスの複数のインスタンスが動作している場合でもダウンタイムを防ぐことができます。この機能はまだ非常に新しく、更新に関する問題のいくつかを修正するために 1.13.1 が必要です。
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み] Docker-Composeを使用して、複数のコマンドを実行する方法
-
[解決済み】docker-composeで単一のコンテナを再起動する方法
-
[解決済み】docker composeで環境変数を使用する方法
-
[解決済み] Docker CMDを複数回使用して、複数のサービスを実行することができないのはなぜですか?
-
[解決済み] dockerコンテナにroot以外のユーザーで接続する
-
[解決済み] docker-compose.yml を使ってコンテナを自動削除する
最新
-
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、net:hostでコンテナを実行する。
-
[解決済み] Log4j2 のログレベルをプログラムで変更する
-
[解決済み] Kubernetesのローカル開発環境を構築する方法とは?
-
[解決済み] Dockerfileに複数行のコマンドを改行を維持したまま記述する方法とは?
-
[解決済み] docker-composeで--add-hostやextra_hostsを使用する。
-
[解決済み] 実行中のすべてのdockerコンテナを再起動するためのコマンド?
-
[解決済み] pm2とdockerを一緒に使う意味は何ですか?
-
[解決済み] Kubernetesの秘密を解き明かす
-
[解決済み] ドッカーデータボリュームとマウントされたホストディレクトリの比較
-
[解決済み] docker-compose のコンテキストまたはワークディレクトリー