こんにちは。まゆみです。
Dockerについての記事をシリーズで書いています。
今回の記事では、環境変数を利用してPORT番号を変える方法を書いていこうと思います
環境変数はPORT番号以外でも用いられる場面が多いので、様々な場面で応用していただければ幸いです。
ではさっそく始めていきますね。
#環境変数を使うメリット
Dockerfileで環境変数を設定することで、PORT番号に変更があった時に、 わざわざDockerfileからImageをrebuildしなくても済みます。
#環境変数の設定
環境変数の設定は、Dockerfileで行います。
今回はPORT番号に対して環境変数を設定したいので、下記のようなコードになります(80がデフォルト値になります)
ちなみにEXPOSEで指定するのは、所定のネットワークのどのポートをリッスンするかを指定します。
ENV PORT 80
EXPOSE $PORT
下のスクショのような感じになります
また、環境変数の設定の仕方は上記の方法以外にもありますので、興味のある方はこちらからどうぞ。
Dockerfileを書き換えたら、そのDockerfileを基にしたイメージを作るため、一度rebuildしておいてください。
#Containerを実行する
では先ほどのプロセスでrebuildしたイメージからContainerを実行してみます。
その際、
--env PORT=(変更後の番号)
とオプションを付けてrun します
80から8000に変更してみます。
docker run -p 3000:8000 --env PORT=8000 <ImageID>
環境変数を使えば、PORT番号を変更したからと、わざわざDocerfileを書き換えてrebuildする必要もなく、コマンド上でPORT番号の変更に対処する事ができます。
また、--envオプションは、『-e』を代用しても大丈夫です。
#環境ファイルを使う
また、環境ファイル(.envファイル)を別に作って、そのファイルの中に環境変数を設定する事もできます(下のスクショ参考)
環境ファイルを使った場合、Containerをrunする際につけるオプションは
--env-file ./.env
になります
カレントディレクトリ―(./)にある.envファイルの環境変数を使えと指示します。
#まとめ
今回の記事はここで締めくくらせていただきます。
お役に立てれば幸いです。