programing

docker-compose 내에서 인수를 전달하는 방법은 무엇입니까?

nasanasas 2020. 11. 13. 08:22
반응형

docker-compose 내에서 인수를 전달하는 방법은 무엇입니까?


Docker 1.9를 사용하면 dockerfile에 인수를 전달할 수 있습니다. 링크 참조 : https://docs.docker.com/engine/reference/builder/#arg

docker-compose.yml 내에서 동일한 인수를 어떻게 전달할 수 있습니까?
가능하면 예도 제공하십시오.


이 기능은 Compose 1.6에서 추가되었습니다.

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

services:
  web:
    build:
      context: .
      args:
        FOO: foo

이제 build객체의 일부로 docker-compose v2 +에서 수행 할 수 있습니다 .

docker-compose.yml

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

도커 작성 문서를 참조하십시오 .

위의 예에서 "var1"및 "var2"는 빌드 환경으로 전송됩니다.

참고 : 변수 environment와 이름이 같은 env 변수 ( 블록 을 사용하여 지정됨 args)는 해당 변수를 재정의합니다.


이제 docker-compose변수 대체를 지원합니다.

Compose docker-compose는 실행 되는 셸 환경의 변수 값을 사용합니다 . 예를 들어 셸에 POSTGRES_VERSION=9.3다음 구성이 포함되어 있고 docker-compose.yml파일에 다음 구성을 제공 한다고 가정 합니다.

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

docker-compose up이 구성으로 실행하면 Compose는 POSTGRES_VERSION셸에서 환경 변수를 찾아 해당 값을 대체합니다.이 예에서 Compose 는 구성을 실행 image하기 postgres:9.3전에를로 확인합니다.

참고 URL : https://stackoverflow.com/questions/34322631/how-to-pass-arguments-within-docker-compose

반응형