我正在尝试在构建阶段使用参数化我的 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 文件时docker-compose 构建我收到以下错误:
错误:服务“bpp”构建失败:容器端口无效:gp
似乎参数 gp 在 dockerfile 中不可见。有什么建议么?
你需要添加ARG gp
到你的 Dockerfile。
...
ARG gp
EXPOSE $gp
...
https://docs.docker.com/engine/reference/builder/#arg https://docs.docker.com/engine/reference/builder/#arg
值得一提的是,当您通过 compose 运行它时,这不会公开端口,您需要添加一个ports
docker-compose.yml 的说明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)