빌드 구성을 위한 환경 변수 설정

컨테이너 이미지를 빌드하는 동안 설정되는 환경 변수를 구성할 수 있습니다.

빌드 및 실행 이미지를 확장하여 컨테이너 이미지를 맞춤설정할 수도 있습니다.

로컬 빌드

로컬 빌드의 경우 Pack CLI와 Docker가 설치되어 있어야 합니다.

시작하기 전에

  1. Docker Community Edition(CE)을 워크스테이션에 설치합니다. Docker는 pack에서 OCI 이미지 빌더로 사용됩니다.
  2. Pack CLI를 설치합니다.
  3. Git 소스 제어 도구를 설치하여 GitHub에서 샘플 애플리케이션을 가져옵니다.

환경 변수 설정하기

로컬 빌드의 환경 변수를 설정하려면 각 환경 변수의 pack 명령어에 --env 플래그를 추가합니다.

런타임에서 지원되는 환경 변수를 하나 이상 사용할 수 있습니다.

pack build SERVICE_NAME \
    --env ENVIRONMENT_VARIABLE

다음과 같이 바꿉니다.

  • SERVICE_NAME을 애플리케이션 또는 함수의 서비스 이름으로 바꿉니다.
  • ENVIRONMENT_VARIABLE을 빌드 시간 중 설정하려는 환경 변수로 바꿉니다.

컨테이너 이미지에 GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" 환경 변수를 설정하려면 다음 명령어를 실행합니다.

pack build my-app \
    --builder gcr.io/buildpacks/builder:v1 \
    --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
    --env MY-LOCAL-ENV-VARIABLE

원격 빌드

원격 빌드의 환경 변수를 설정하려면 project.toml 프로젝트 설명자를 사용합니다. project.toml 프로젝트 설명자는 컨테이너 이미지가 빌드될 때 Cloud Build에서 사용됩니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Google Cloud 프로젝트에 컨테이너 이미지 저장소에 대한 액세스 권한이 있는지 확인합니다.

    Artifact Registry의 Docker 저장소에 대한 액세스를 구성하려면 다음 단계를 따르세요.

    1. Google Cloud 프로젝트와 동일한 위치에 새 Docker 저장소를 만듭니다.
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      다음과 같이 바꿉니다.
      • REPO_NAME을 Docker 저장소에 선택한 이름으로 바꿉니다.
      • REGION을 Google Cloud 프로젝트 내 또는 그 위치와 가장 가까운 위치로 바꿉니다.
      • DESCRIPTION을 원하는 설명으로 바꿉니다.

      예를 들어 'Docker 저장소' 설명과 함께 us-west2docker 저장소를 만들려면 다음 명령어를 실행합니다.

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
    2. 저장소가 만들어졌는지 확인합니다.
      gcloud artifacts repositories list

      목록에 Docker 저장소에 대해 선택한 이름이 표시됩니다.

선택사항: 샘플 애플리케이션 다운로드

  1. 샘플 저장소를 로컬 머신에 클론합니다.
    git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
  2. 애플리케이션 샘플 코드가 포함된 디렉터리로 변경합니다.

    Go

    cd buildpack-samples/sample-go

    자바

    cd buildpack-samples/sample-java-gradle

    Node.js

    cd buildpack-samples/sample-node

    PHP

    cd buildpack-samples/sample-php

    Python

    cd buildpack-samples/sample-python

    Ruby

    cd buildpack-samples/sample-ruby

    .NET

    cd buildpack-samples/sample-dotnet

환경 변수로 애플리케이션 빌드

  1. 서비스의 루트 디렉터리에서 project.toml 프로젝트 설명자를 만들거나 업데이트하여 [[build.env]] 섹션 및 모든지원되는 환경 변수를 포함합니다.
    [[build.env]]
        name = "ENVIRONMENT_VARIABLE_NAME"
        value = "ENVIRONMENT_VARIABLE_VALUE"

    다음과 같이 바꿉니다.

    • ENVIRONMENT_VARIABLE_NAME지원되는 환경 변수의 이름으로 바꿉니다.
    • ENVIRONMENT_VARIABLE_VALUE를 지정된 환경 변수의 해당 값으로 바꿉니다.

    예시

    [[build.env]]
        name = "GOOGLE_ENTRYPOINT"
        value = "gunicorn -p :8080 main:app"
  2. gcloud를 사용하여 애플리케이션 소스 코드를 Cloud Build에 제출합니다.
    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME

    다음과 같이 바꿉니다.

    • LOCATION을 컨테이너 저장소의 리전 이름으로 바꿉니다. 예를 들면 us-west2-docker.pkg.dev입니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
    • REPO_NAME을 Docker 저장소의 이름으로 바꿉니다.
    • IMAGE_NAME를 컨테이너 이미지 이름으로 바꿉니다.

    예시: 샘플 애플리케이션을 다운로드한 경우 해당 명령어를 실행합니다.

    Go

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-go

    자바

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-java-gradle

    Node.js

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-node

    PHP

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-php

    Python

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-python

    Ruby

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-ruby

    .NET

    gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-dotnet
  3. 샘플 애플리케이션이 성공적으로 REPO_NAME에 게시되었는지 확인합니다.
    gcloud artifacts docker images list LOCATION-docker.pkg.dev/project-id/REPO_NAME

    다음과 같이 바꿉니다.

    • LOCATION을 컨테이너 저장소의 리전 이름으로 바꿉니다. 예를 들면 us-west2-docker.pkg.dev입니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
    • REPO_NAME을 Docker 저장소의 이름으로 바꿉니다.