docker-compose up で .env の値が読めずにエラーになったら(* error decoding 'Ports': Invalid hostPort: ****)

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"