docker-compose up で .env の値が読めずにエラーになったら(* error decoding 'Ports': Invalid hostPort: ****)
December 18, 2021
いつも通り docker-compose up
したらある日突然掲題のエラーが出るように。
Docker 関連のファイルを何か更新したわけでもないのになぜ?
いまのところまだ理由は特定できていないですが、とりあえずのワークアラウンドを記載します。
エラーが発生する状態 #
docker-compose.yml
version: '3.8'
services:
app:
build:
context: .
dockerfile: ./Docker/app/Dockerfile
ports:
- '${APP_PORT:?err}:3000'
tty: true
.env
APP_PORT=3000
例えば、上記状態で docker-compose up
すると以下のエラーが発生しました。
* error decoding 'Ports': Invalid hostPort: 3000
ワークアラウンド #
.env
ファイルの設定値を(シングル or ダブル)クオーテーションで囲む。
APP_PORT="3000"
補足 #
掲題に記載したエラーの起因は PORT の部分でしたが、PORT 部分のみならず .env
ファイルの値を全体的に読み込めていないようです。
例えば他には、プロジェクト名を明示する COMPOSE_PROJECT_NAME
を記載していましたがこれも読み込めなくなっているようでした。
COMPOSE_PROJECT_NAME=app_project
こちらもやはり同様に以下で解消できます。
COMPOSE_PROJECT_NAME="app_project"