1 風吹けば名無し 2026/06/27(土) 21:04:00 ID:Dc5oMp0s
Docker Compose でローカル環境作るのは簡単やったんや
問題は本番で同じ構成を使おうとしたときやった
2 風吹けば名無し 2026/06/27(土) 21:05:23 ID:Ws9tY3ke
あるある
何踏んだんや
3 風吹けば名無し 2026/06/27(土) 21:06:08 ID:Dc5oMp0s
>>2 まず環境変数や
.env をそのまま本番に置いとった。.gitignore には入れとったけど、サーバーへの配布手順が口頭伝達やった
4 風吹けば名無し 2026/06/27(土) 21:07:16 ID:Ws9tY3ke
>>3 口頭伝達で草
5 風吹けば名無し 2026/06/27(土) 21:08:47 ID:Dc5oMp0s
>>4 後任が環境変数なしでデプロイして本番が壊れた
シークレット管理は仕組みで解決せなあかん
6 風吹けば名無し 2026/06/27(土) 21:09:40 ID:Ji6uB8rf
次は
7 風吹けば名無し 2026/06/27(土) 21:10:56 ID:Dc5oMp0s
>>6 ヘルスチェックや
depends_on はコンテナの起動順を制御するけど、DB が「起動しとる」だけでは「接続できる」ことを保証せん
8 風吹けば名無し 2026/06/27(土) 21:11:34 ID:Ji6uB8rf
>>7 それで落ちたんか
9 風吹けば名無し 2026/06/27(土) 21:12:35 ID:Dc5oMp0s
>>8 アプリが DB に繋ごうとした瞬間に DB がまだ初期化中やった
db:
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
retries: 5
app:
depends_on:
db:
condition: service_healthy # これが重要
10 風吹けば名無し 2026/06/27(土) 21:13:59 ID:Ji6uB8rf
>>9 condition: service_healthy 知らんかったわ
11 風吹けば名無し 2026/06/27(土) 21:14:45 ID:Dc5oMp0s
>>10 これが重要や
12 風吹けば名無し 2026/06/27(土) 21:15:54 ID:Ln4dX7qz
まだあるんか
13 風吹けば名無し 2026/06/27(土) 21:17:26 ID:Dc5oMp0s
>>12 ボリュームのパーミッションや
ホストの UID とコンテナの UID がずれてファイルが書けんくなった
開発時に root で動かしとったのが原因や。本番では user: を明示するのが無難
14 風吹けば名無し 2026/06/27(土) 21:18:20 ID:Ln4dX7qz
>>13 全部ローカルでは出ん問題やな
15 風吹けば名無し 2026/06/27(土) 21:19:37 ID:Dc5oMp0s
>>14 そういうことや
本番に近いステージングで一回通してみるのが結局の近道やった