asp.net core + docker-compose でポートを固定する
dotnet new webaipでプロジェクトを作成し、docker-composeでコンテナ実行を出来るようにすると、ポートがランダムになるの困りますよね?
もちろん、開発の時と、公開の時のdocker-composeは分ける前提です。
Visual Studioは大変便利で、docker-composeも良く分からない「docker-compose.dcproj」で管理をしてくれます。
はい、面倒ですね?
でも、起動が速いので、仕方が無いのかもしれません。
しかし、APIの口が変わってしまうと、開発が非常にやりづらい。
なのでポートを固定したいけれどうまく行かない人と、未来の自分へこの記事を残します。
VisualStudioでdocker-composeを作成すると、プロジェクトの一つとして「docker-compose」が作成されます。
中身に「docker-compose.yml」があるので、中を見ると、port設定がありません。
ここで私は詰まりました。
どう設定をしても、ポートがランダムになります。
対策は
左に▷がありこれをクリックすると・・・「docker-compose.override.yml」と言うのが出てきます。
VisualStudioは(ある意味)大変賢いので、このファイルで設定を上書きます。
ここに、portsさんがおられます。
不思議なことに"80"とか書かれています。ここを一般的な書き方
- 9080:80
など、文字列では無い状態で記述すると、問題なくポートが固定化されます。
以上です。
同じ悩みに苦しんだ方がおられましたら、助けになると幸いです。