컨테이너 이미지를 빌드하는 동안 설정되는 환경 변수를 구성할 수 있습니다.
빌드 및 실행 이미지를 확장하여 컨테이너 이미지를 맞춤설정할 수도 있습니다.
로컬 빌드
로컬 빌드의 경우 Pack CLI와 Docker가 설치되어 있어야 합니다.
시작하기 전에
- Docker Community Edition(CE)을 워크스테이션에 설치합니다. Docker는
pack
에서 OCI 이미지 빌더로 사용됩니다. - Pack CLI를 설치합니다.
- 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에서 사용됩니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Build and Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Google Cloud 프로젝트에 컨테이너 이미지 저장소에 대한 액세스 권한이 있는지 확인합니다.
Artifact Registry의 Docker 저장소에 대한 액세스를 구성하려면 다음 단계를 따르세요.
- 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-west2
에docker
저장소를 만들려면 다음 명령어를 실행합니다.gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- 저장소가 만들어졌는지 확인합니다.
gcloud artifacts repositories list
목록에 Docker 저장소에 대해 선택한 이름이 표시됩니다.
- Google Cloud 프로젝트와 동일한 위치에 새 Docker 저장소를 만듭니다.
선택사항: 샘플 애플리케이션 다운로드
- 샘플 저장소를 로컬 머신에 클론합니다.
git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
- 애플리케이션 샘플 코드가 포함된 디렉터리로 변경합니다.
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
환경 변수로 애플리케이션 빌드
- 서비스의 루트 디렉터리에서
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"
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
-
샘플 애플리케이션이 성공적으로
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 저장소의 이름으로 바꿉니다.