雷って幻想的だよね?

宗教:C#、ラノベ好きの戯言です。※Google Analytics 埋め込みを利用しています。

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

など、文字列では無い状態で記述すると、問題なくポートが固定化されます。


以上です。
同じ悩みに苦しんだ方がおられましたら、助けになると幸いです。