You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同版本Docker环境下docker-compose仅单台生效的问题求助

解决Docker Compose PORT变量未设置的报错问题

环境信息

  • 设备:台式机、笔记本,均运行最新版Kubuntu LTS系统
  • Docker版本:20.10.24(build 297e128)
  • docker-compose版本:v2.17.2

问题背景

项目在台式机开发正常,克隆到笔记本后启动Docker服务时报错,同步两台设备的Docker、docker-compose版本后问题依旧。

报错信息

WARN[0000] The "PORT" variable is not set. Defaulting to a blank string. 
WARN[0000] The "PORT" variable is not set. Defaulting to a blank string. 
1 error(s) decoding:

* error decoding 'Ports': No port specified: :<empty>

问题原因

docker-compose.yml中adonis_app服务的端口配置使用了${PORT}:${PORT}变量,但笔记本项目目录中缺少定义该变量的.env文件——台式机上的.env通常会被.gitignore忽略,克隆代码时不会同步到笔记本。

解决方案

1. 创建/配置.env文件

在项目根目录新建.env文件,添加PORT变量定义(端口可根据需求调整,示例用3333):

PORT=3333
# 项目所需其他环境变量可一并在此添加

确保.env文件与docker-compose.yml处于同一目录层级。

2. 验证配置(可选)

运行以下命令检查变量是否正确加载:

docker-compose config

若输出无报错,说明配置正常。

3. 给PORT设置默认值(可选,增强容错性)

修改docker-compose.yml中adonis_app的ports配置,添加默认端口值,这样即使.env未配置PORT,也会自动使用默认值启动:

ports:
  - ${PORT:-3333}:${PORT:-3333}
  - 9229:9229

完成以上操作后,重新运行docker-compose up即可正常启动服务,实现台式机和笔记本的跨设备开发。

内容的提问来源于stack exchange,提问作者George Bora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:30:18