evelop GenAI Apps with Gemini and Streamlit Skill Badge은 사실 Streamlit에 혹해서 시작해본 녀석이었으나 진행을 해보니 Docker build하고 deploy하는 과정이었다.

requirements.txt

처음 제공되는 requirements.txt에 2개가 빠져있는데, 아무생각없이 pip로 설치만 했다가, 나중에 docker deploy하고 나서 테스트하는 과정에서 없다고 나와서 지우고 새로 올리는 사태가 벌어졌다.

pip install google.cloud-logging
pip install vertexai
# requirements.txt에 빠진내용

pip freeze > requirements.txt
# 나중에 docker build 할 때 requirements.txt 사용된다는 점을 생각하자.

export 변수명

중요하게 사용되는것은 project와 region인데.. 물론 다 하드코딩으로 하면 전혀 문제될 것이 없겠지만, 치환해서 사용하려면, 좀 보고 주의를 기울여야 한다.

export GCP_PROJECT='qwiklabs-gcp-03-393616985d90'
export GCP_REGION='us-central1'
export AR_REPO='chef-repo'
export SERVICE_NAME='chef-streamlit-app'
# 환경변수 GCP_REGION의 경우 LOCATION, REGION등으로 안내되는 경우가 있음으로 확인.
# GCP_PROJECT는 PROJECT로 안내되고 있음

docker command

사실 gcloude에서 docker command의 사용은 처음이었으나, 나름 가이드가 잘되어있었다. 물론 allow-unauthenticated는 좀 고려가 필요해 보인다.

gcloud artifacts repositories create $AR_REPO --location=$GCP_REGION --repository-format=Docker
# Google Cloud의 Artifact Registry에 **저장소(Repository)**를 생성하는 명령어입니다.
# 도커 이미지, 패키지(예: npm, Maven, PyPI) 등을 저장할 공간을 마련하는 과정입니다.


gcloud builds submit --tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"
# Cloud Build를 사용하여 Docker 이미지를 빌드하고 Artifact Registry에 업로드하는 명령어입니다.
# 로컬에서 직접 빌드하지 않고, Google Cloud에서 빌드 과정을 실행합니다.

gcloud run deploy \
--port 8080 \
--image "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \
--allow-unauthenticated \
--region $GCP_REGION \
--platform managed \
--project $GCP_PROJECT \
--set-env-vars PROJECT=$GCP_PROJECT,REGION=$GCP_REGION
# deploy

gcloud run services delete $SERVICE_NAME --region=$GCP_REGION
# 머 잘못되었으면 당연히 지우고 새로 올리면 된다.

Read Count