はじめに
おまじないとしか思ってないのもどーなんだていうね!
GPT4大先生より
マイメンに聞いてみました。
DockerfileのEXPOSEコマンドは、コンテナが実行時に特定のポートをリッスンするように指定するためのものです。
例えば、EXPOSE 80と書かれたDockerfileがある場合、コンテナは80番ポートをリッスンするようになります。
ただし、EXPOSEだけではポートは公開されません。つまり、使用者からコンテナにはアクセスできません。
公開用のポートとEXPOSEで指定したポートを紐づけるためには、docker run -pコマンドを使用します。
そのため、EXPOSEはイメージの作者とコンテナ実行者の両者に対して、ドキュメントのような役割を果たします。
具体的な使い方は以下の通りです:
ポートとプロトコルを指定する場合: EXPOSE 80/tcp または EXPOSE 80/udp
docker runコマンドでホスト上のポートとバインディングする場合: docker run -p 80:80
1行目, 2行目はよいこのDockerみたいな本で学習したからわかる。
中〜後半もふむふむなるほどねて感じ。
Fargateで
EXPOSE 80
をDockerfileから削除してタスク起動したら普通に動いた。
で、そういえばタスク定義で設定した記憶がうっすらあるな。。?と思ったので改めて見てみる。
全然普通にあったわ。あと注釈にマイメンと似たニュアンスのこと書いてる。
この辺もFargateはよしなにやってくれてるんだな。最高か?
おわりに
Dockerfileは最軽量、あとはUIで完結するのがFargateのベストなのか?とかおもたり。
それでデプロイ時間が短くなるなら最高ですね!
以上です〜