Spring boot 当我将端口设置为环境变量时,Docker compose显示无效端口错误
我有一个简单的docker compose文件,它启动了我的spring boot应用程序Spring boot 当我将端口设置为环境变量时,Docker compose显示无效端口错误,spring-boot,docker,docker-compose,Spring Boot,Docker,Docker Compose,我有一个简单的docker compose文件,它启动了我的spring boot应用程序 version: '3' services: applic: build: context: . dockerfile: local.Dockerfile args: - DEBUG_PORT=${DEBUG_PORT} - DEBUG_FLAG=${DEBUG_FLAG} environment: - "
version: '3'
services:
applic:
build:
context: .
dockerfile: local.Dockerfile
args:
- DEBUG_PORT=${DEBUG_PORT}
- DEBUG_FLAG=${DEBUG_FLAG}
environment:
- "SPRING_PROFILES_ACTIVE=local"
- "DEBUG_PORT=5005"
- "DEBUG_FLAG=true"
ports:
- "8083:8083"
- $DEBUG_PORT:$DEBUG_PORT
depends_on:
- mysql
volumes:
- "../:/mnt"
当我用docker compose-up--build
命令启动它时,它会显示以下错误:
applic.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
我做错了什么?我从互联网上尝试了许多解决方案,但没有任何帮助。将其改为:
"${DEBUG_PORT}:${DEBUG_PORT}"
这是:
args:
- DEBUG_PORT=${DEBUG_PORT}
- DEBUG_FLAG=${DEBUG_FLAG}
要工作,首先需要导出它们
export DEBUG_PORT=xxxx && export DEBUG_FLAG=xxxx && docker-compose up --build
似乎是启动容器时变量展开的错误
ports:
- "8083:8083"
- "${DEBUG_PORT}:${DEBUG_PORT}"
在撰写文件的根目录下创建.env
DEBUG_PORT=80
根据问题,您需要在.env
中定义DEBUG\u PORT
env_文件
optin将仅在docker中设置环境变量
容器本身。不在撰写期间使用的主机上
“建造”
要将端口定义为env var,应使用.env
文件作为
描述
在您的情况下,创建一个.env文件,其中包含:
DEBUG\u PORT=5000
不起作用(我试图将env文件添加到docker compose文件中,但它显示了相同的错误。您需要放置linpy“
”${DEBUG\u PORT}:${DEBUG\u PORT}”
是。我按照答案中所述放置了它:-“${DEBUG\u PORT}:${DEBUG\u PORT}”"我将此参数添加到local.env DEBUG_PORT=5005。我使用此env_文件:-local.env将此文件与docker compose连接,但它仍然不起作用。请检查提供的链接尝试启动docker compose--从local/目录构建。env
必须位于工作目录中,就像compose.ymllook一样。但它是否起作用他是这种情况的唯一解决方案?我的意思是,如果我不想启用调试怎么办?即使我不需要这种模式,我也应该添加导出调试端口。是的,我认为,因为compose将始终尝试计算“${debug\u PORT}:${debug\u PORT}”
,如果未设置此选项,则它将只看到: