Open5

Artifact RegistryにDockerイメージをpushする

takumitakumi

リポジトリの作成

  • REPOSITORY: リポジトリ名
  • LACATION: リポジトリのリージョン(東京はasia-northeast1
  • DESCRIPTION: リポジトリの説明(暗号化されない)

以下のコマンドで作成する

gcloud artifacts repositories create {REPOSITORY} \
    --repository-format=docker \
    --location={LOCATION} \
    --description="{DESCRIPTION}" \
    --immutable-tags \
    --async

以下のコマンドで作成できたか確認する

gcloud artifacts repositories describe devlocator-app \
    --location=asia-northeast1

参考

https://cloud.google.com/artifact-registry/docs/repositories/create-repos?hl=ja#docker

takumitakumi

Artifact RegistoryにDockerイメージをpushする

以下のコマンドでdockerイメージにタグ付けをする

docker tag {LOCAL_IMAGE} {LOCATION}-docker.pkg.dev/{PROJECT_ID}/{REPOSITORY}/{IMAGE} 

pushコマンドでartifact registryにpushしようとしたが権限エラー

docker push asia-northeast1-docker.pkg.dev/...

エラー内容

denied: Permission "artifactregistry.repositories.uploadArtifacts" denied on resource ...

Dockerの認証をしていなかったことが原因

https://cloud.google.com/artifact-registry/docs/docker/authentication?hl=ja#gcloud-helper

以下のコマンドで~/.docker/config.jsonに必要情報が追加される

gcloud auth configure-docker asia-northeast1-docker.pkg.dev

再度pushして確認!

takumitakumi

CloudRunにデプロイする

CloudRunにデプロイするためにgcloud run deployコマンドを実行したが、エラーが発生

gcloud run deploy devlocator --image asia-northeast1-docker.pkg.dev/{PROJECT_ID}/{REPOSITORY}/{IMAGE}:latest

エラー文

The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information

エラー解決で試したこと(後で整理する)

  • DockerfileにEXPOSEを追加した
  • イメージビルドの際に--platform linux/amd64を付与した
  • godotenv.Load()をコメントアウトした
  • os.GetenvPORTを環境変数から取得

https://zenn.dev/msksgm/scraps/d667e2b2eecf4e