How to pass arguments within docker-compose?

前端 未结 3 1161
我在风中等你
我在风中等你 2020-11-30 01:23

Docker 1.9 allows to pass arguments to a dockerfile. See link: https://docs.docker.com/engine/reference/builder/#arg

How can I pass the same arguments within dock

相关标签:
3条回答
  • 2020-11-30 01:58

    Now docker-compose supports variable substitution.

    Compose uses the variable values from the shell environment in which docker-compose is run. For example, suppose the shell contains POSTGRES_VERSION=9.3 and you supply this configuration in your docker-compose.yml file:

    db:
      image: "postgres:${POSTGRES_VERSION}"
    

    When you run docker-compose up with this configuration, Compose looks for the POSTGRES_VERSION environment variable in the shell and substitutes its value in. For this example, Compose resolves the image to postgres:9.3 before running the configuration.

    0 讨论(0)
  • 2020-11-30 01:59

    This can now be done as of docker-compose v2+ as part of the build object;

    docker-compose.yml

    version: '2'
    services:
        my_image_name:
            build:
                context: . #current dir as build context
                args:
                    var1: 1
                    var2: c
    

    See the docker compose docs.

    In the above example "var1" and "var2" will be sent to the build environment.

    Note: any env variables (specified by using the environment block) which have the same name as args variable(s) will override that variable.

    0 讨论(0)
  • 2020-11-30 02:14

    This feature was added in Compose 1.6.

    Reference: https://docs.docker.com/compose/compose-file/#args

    services:
      web:
        build:
          context: .
          args:
            FOO: foo
    
    0 讨论(0)
提交回复
热议问题