docker-compose.yml → Dockerfile 변수 전달 & 다중 FROM 구성의주의 사항

docker-compose.yml → Dockerfile에 변수를 전달하는 방법



↓이 기사에서 사용한 재료입니다
* syslog 수신 → S3 저장 Docker 컨테이너 간단 세트 htps : // 이 m / 야그 sh / ms / 2fb f71c1c2bf12f7d71

1/2 docker-compose.yml 측면


build 키의 아이 요소로서 args 키를 추가해,
그 아래에 배열로서 전달하고 싶은 변수명과 값을 써 갑니다.
services:
  my-s3access-app:
    build:
      context: ./app
      dockerfile: Dockerfile
      args:
        - GITHUB_ACC=hogehige
        - GITHUB_ACC_PASSWORD=agd82gfo3gfagkaf
     ・
     ・
     ・

2/2 Dockerfile 측


ARG 명령으로 선언(캐치)하면(자), 그 이후 $HOGE 로 이용 가능하게 됩니다.
FROM golang:1.13
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
 ・
 ・
 ・

Dockerfile이 다중 FROM 구성일 때의 주의 사항



다음의 FROM 커멘드에 처리가 옮겨질 때 인계되지 않기 때문에, ARG 재차 하지 않으면 안됩니다.

덧붙여서 복수 FROM 가 필요한 것은
[소스 코드를 빌드하는 이미지]
그리고
[빌드 결과의 실행체만을 배치해 실행하기 위한 이미지]
를 나누고 싶을 때 등이군요.
FROM golang:1.13 as base

FROM base as builder
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
 ・
 ・
 ・
FROM base as scratch
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
 ・
 ・
 ・

좋은 웹페이지 즐겨찾기