【Docker】環境変数を利用して、PORT番号を変更してみる no.19


こんにちは。まゆみです。

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ファイルの環境変数を使えと指示します。

まとめ

今回の記事はここで締めくくらせていただきます。

お役に立てれば幸いです。