我正在尝试在构建阶段使用参数化我的dockerfiles并在Docker-compose中使用参数 . 例如在Docker compose中我定义了一个名为bpp的服务,如下所示:
bpp:
build:
context: .
dockerfile: Dockerfile.bpp
args:
gp : 8080
image: serv/bpp
restart: always
depends_on:
- data
links:
- data
我正在尝试将名为gp的参数传递给Dockerfile.bpp,其中我在启动Python应用程序时使用参数,暴露端口等 . 例如在dockerfile.bpp中尝试公开端口gp如下:
EXPOSE gp
但是,当通过命令docker-compose build构建docker文件时,我收到以下错误:错误:服务'bpp'无法构建:无效的containerPort:gp
似乎参数gp在dockerfile中不可见 . 有什么建议?
2 回答
您需要将
ARG gp
添加到Dockerfile .https://docs.docker.com/engine/reference/builder/#arg
值得一提的是,这不是通过compose运行它,你需要为你的docker-compose.yml添加
ports
指令 .首先,the syntax is:
所以试试
gp: 8080
,而不是gp : 8080
.其次,请确保您使用version 2 of the docker-compose.yml format .
第三,试试