如何将--build-arg参数从命令行传递到docker-compose.yml文件?

时间:2020-03-03 03:42:23

标签: docker docker-compose arguments parameter-passing

假设我键入以下命令

docker-compose -f docker-compose.yml build --build_args PARAM=1

我应该如何编写docker-compose.yml以便yml字段获得参数PARAM,其值为1

我的yml文件在下面。

version: '3.7'

services:
  web:
    build:
      context: .
      dockerfile: ./Dockerfile
      args: 
         - MY_PARAM: ${PARAM}
      ports:
         - "5000:5000"
    image: sample-img:1.0

我添加了

args: 
   - MY_PARAM: ${PARAM}

build下。这是正确的吗?

1 个答案:

答案 0 :(得分:0)

在这里,您可以在使用compose时传递构建参数-

  1. 允许在Dockerfile中支持参数。

    FROM foo:bar   
    ARG PARAM
    ARG PARAM2
    .................
    
  2. 现在您可以通过两种不同的方式传递这些参数-

    1. 在运行时-

      docker-compose -f docker-compose.yml build --build-arg "PARAM=1 PARAM2=2"
      
    2. 在使用shell的情况下-

      $ export PARAM=1 PARAM2=2
      

      按如下所示更改docker的组成-

      dockerfile: ./Dockerfile.foo
      args:
        PARAM: ${PARAM}
        PARAM2: ${PARAM2}
      

      构建-

      $ docker-compose -f docker-compose.yml build