使用 Docker compose 为 Docker 文件传递参数
Passing arguments for Dockerfiles using Docker compose
我正在尝试在构建阶段使用参数化我的 docker 文件,并在 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' 构建失败:无效的容器端口:gp
似乎参数 gp 在 docker 文件中不可见。有什么建议吗?
首先,the syntax is:
build:
args:
buildno: 1
user: someuser
build:
args:
- buildno=1
- user=someuser
所以尝试使用 gp: 8080
,而不是 gp : 8080
。
其次,确保您使用的是 version 2 of the docker-compose.yml format。
三、试试
EXPOSE $gp
您需要将 ARG gp
添加到您的 Dockerfile。
...
ARG gp
EXPOSE $gp
...
https://docs.docker.com/engine/reference/builder/#arg
值得一提的是,当您通过撰写 运行 时,这不会公开端口,但您需要向 docker 添加 ports
指令-compose.yml 为此。
我正在尝试在构建阶段使用参数化我的 docker 文件,并在 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' 构建失败:无效的容器端口:gp
似乎参数 gp 在 docker 文件中不可见。有什么建议吗?
首先,the syntax is:
build:
args:
buildno: 1
user: someuser
build:
args:
- buildno=1
- user=someuser
所以尝试使用 gp: 8080
,而不是 gp : 8080
。
其次,确保您使用的是 version 2 of the docker-compose.yml format。
三、试试
EXPOSE $gp
您需要将 ARG gp
添加到您的 Dockerfile。
...
ARG gp
EXPOSE $gp
...
https://docs.docker.com/engine/reference/builder/#arg
值得一提的是,当您通过撰写 运行 时,这不会公开端口,但您需要向 docker 添加 ports
指令-compose.yml 为此。