빌드팩은 환경 변수를 통해 언어 관용적 구성을 지원합니다.
Python 버전 지정
기본적으로 Python 런타임 빌드팩은 최신 Python 인터프리터 안정화 버전을 사용합니다. 애플리케이션에 특정 버전이 필요한 경우 애플리케이션 루트 디렉터리에 .python-version
파일을 포함하여 버전을 지정하면 됩니다.
3.9.9
GOOGLE_PYTHON_VERSION
사용
GOOGLE_PYTHON_VERSION
환경 변수를 통해 Python 버전을 지정할 수도 있습니다.
두 구성이 모두 설정된 경우 GOOGLE_PYTHON_VERSION
값이 .python-version
파일보다 우선 적용됩니다. 기본적으로 .python-version
파일과 GOOGLE_PYTHON_VERSION
환경 변수가 모두 지정되지 않은 경우 Python의 최신 LTS 버전이 사용됩니다.
앱을 배포할 때 Python 3.10을 사용하도록 빌드팩을 구성하려면 다음을 실행합니다.
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env GOOGLE_PYTHON_VERSION="3.10.x"
또한 project.toml
프로젝트 설명자를 사용하여 프로젝트 파일과 함께 환경 변수를 인코딩할 수 있습니다. 환경 변수로 애플리케이션 빌드에 대한 안내를 참조하세요.
pip를 사용하여 종속 항목 지정
Python 빌드팩에서는 pip를 사용하여 애플리케이션 종속 항목을 관리할 수 있습니다. 애플리케이션 종속 항목은 루트 디렉터리의 requirements.txt
파일에 선언되어야 합니다.
requirements.txt
파일에는 패키지당 한 줄이 포함됩니다. 각 줄에는 패키지 이름과 선택사항으로 요청된 버전이 포함됩니다. 자세한 내용은 requirements.txt
참조를 참조하세요.
다음은 requirements.txt
파일의 예시입니다.
requests==2.20.0 numpy
pip 구성
환경 변수를 사용하여 pip 동작을 구성할 수 있습니다.
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env PIP_DEFAULT_TIMEOUT='60'
Artifact Registry의 비공개 종속 항목
Artifact Registry Python 저장소는 Python 함수의 비공개 종속 항목을 호스팅할 수 있습니다. Cloud Build에서 애플리케이션을 빌드할 때 Python 빌드팩은 Cloud Build 서비스 계정의 Artifact Registry 사용자 인증 정보를 자동으로 생성합니다.
추가 사용자 인증 정보를 생성하지 않고도 requirements.txt
에 Artifact Registry URL만 포함하면 됩니다. 예를 들면 다음과 같습니다.
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
애플리케이션 진입점
Python 빌드팩은 Gunicorn을 워크로드의 기본 WSGI HTTP 서버로 사용합니다. Python 빌드팩으로 빌드된 앱은 다음 실행과 비슷하게 기본 설정을 사용해서 gunicorn
프로세스를 시작합니다.
gunicorn --bind :8080 main:app
애플리케이션 진입점 맞춤설정
Procfile
또는 환경 변수를 사용하여 Gunicorn 기본값, 진입점 기본값을 재정의하고 애플리케이션 시작 명령어를 맞춤설정할 수 있습니다.
루트 디렉터리에서 커스텀 설정으로 Procfile
을 만들 수 있습니다.
예시:
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
또는 pack
명령어에 GOOGLE_ENTRYPOINT
환경 변수를 사용할 수 있습니다. 예시:
pack build sample-python \
--builder gcr.io/buildpacks/builder
--env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"
환경 변수
Python 빌드팩은 컨테이너를 맞춤설정하기 위해 다음 환경 변수를 지원합니다.
PIP_<key>
pip 문서를 참조하세요.
예: PIP_DEFAULT_TIMEOUT=60
은 pip
명령어에 --default-timeout=60
을 설정합니다.