Dockerhub 자동 빌드에서 환경 변수를 사용하는 방법

5010 단어 도커DockerHub
Dockerhub의 자동 빌드에서는 프로젝트 별 환경 변수를 사용할 수 있습니다. 다만, 설정이 힘들었기 때문에, 망비록도 겸해 정리합니다. 오토 빌드에서 환경 변수를 사용하는 데 필요한 프로세스는 다음 세 가지입니다.
  • BUILD ENVIRONMENT VARIABLES
  • hooks/build
  • Dockerfile ARG

  • 샘플 코드



    이하가 이번 해설에 사용하는 소스 코드, Docker 리포지토리입니다.

    소스 코드
    htps : // 기주 b. 코 m / 카이 도지 85 / s dy-th ree-js

    Docker 리포지토리
    htps : // 후 b. 도 c r. 코 m / r / 카이 도지 85 / gb 등

    이 코드는 내가 취미로 만들고 있는 게임 입니다만, 놀이 방법 설명 동영상으로서 YouTube를 퍼가고 있습니다. YouTube URL을 하드 코딩하는 것도 느껴졌기 때문에 HOW_TO_PLAY_URL라는 환경 변수로 설정을 외출할 수 있도록 했습니다.

    환경 변수 설정 방법



    1. BUILD ENVIRONMENT VARIABLES





    dockerhub의 자동 빌드 설정 화면을 열면 "BUILD ENVIRONMENT VARIABLES"라는 항목이 있습니다. Key에 환경 변수 이름을, Value에 값을 설정합니다. 이것만으로 환경 변수를 사용할 수 있을 것 같습니다만, 그렇게는 도매상이 도매하지 않습니다.

    2. hooks/build



    Dockerhub 공식 사이트 에 자연스럽게 써 있습니다만, 전절에서 설정한 항목은 hooks 폴더하하의 쉘로 밖에 사용할 수 없습니다. 따라서 다음 내용으로 git 저장소에 hooks/build라는 파일을 추가합니다.

    hooks/build
    #!/bin/bash
    
    docker build -t $IMAGE_NAME --build-arg <環境変数名>=$<環境変数名> . 
    

    샘플 프로젝트 에서는, hooks/build 에 이하 내용을 기재했습니다.

    샘플 코드
    #!/bin/bash
    
    docker build -t $IMAGE_NAME --build-arg HOW_TO_PLAY_URL=$HOW_TO_PLAY_URL .
    

    덧붙여서 여러 환경 변수를 건네주고 싶은 경우는, 번거로운 냄새입니다만 이하와 같이 씁니다.

    여러 환경 변수 지정
    docker build -t $IMAGE_NAME --build-arg VAL1=$VAL1 --build-arg VAL2=$VAL2 --build-arg VAL3=$VAL3 .
    

    여기에서 먼저 밟은 설명이므로, 방법만 알고 싶은 분은 읽어 날려 주세요. hooks/build는 사용자 자신의 Docker 빌드 명령을 실행할 때 사용하는 쉘입니다. Docker 빌드에 환경 변수를 전달하는 방법은 여러 가지 있다고 생각합니다만, 여기에서는 일반적인 방법인 --build-arg 를 사용하고 있습니다. 또한 $IMAGE_NAME는 dockerhub가 미리 준비한 환경 변수 이름으로 docker 이미지 이름을 설정합니다. dockerhub 공식 사이트 을 보면, 이것 이외에도 다양한 환경 변수가 미리 정의되고 있는 것 같습니다.

    3. ARG



    다음과 같이 Dockerfile에 ARG라는 항목을 추가합니다.

    Dockerfile
    ARG 環境変数名
    

    다음은 샘플 코드 의 Dockerfile입니다. 두 번째 줄에는 "ARG"라는 설명이 있습니다.

    샘플 코드
    FROM node:12.16.1-slim as builder
    ARG HOW_TO_PLAY_URL
    WORKDIR /usr/src/app
    COPY . /usr/src/app/
    RUN npm config set registry http://registry.npmjs.org/ && \
      npm ci && \
      npm run build:production
    
    FROM node:12.16.1-slim as runner
    WORKDIR /usr/src/app
    COPY --from=builder /usr/src/app/ /usr/src/app/
    CMD [ "npm", "run", "serve" ]
    EXPOSE 3000
    

    덧붙여서입니다만, ARG (와)과는 --build-arg 그리고 건네받은 환경 변수를 Dockerfile로 사용할 수 있도록 하기 위한 명령입니다. 그러므로 --build-arg 만을 지정해도 환경 변수를 전달할 수 없습니다.

    좋은 웹페이지 즐겨찾기