Open5
Artifact RegistryにDockerイメージをpushする
前提
- gcloud CLIをインストール済み
gcloud config list
でconfigを確認しておく
リポジトリの作成
- 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
参考
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の認証をしていなかったことが原因
以下のコマンドで~/.docker/config.json
に必要情報が追加される
gcloud auth configure-docker asia-northeast1-docker.pkg.dev
再度pushして確認!
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.Getenv
でPORT
を環境変数から取得
Terraformで作成したリソースにデプロイする
Terraformのセットアップ
まずはTerraformを使えるようにする
上記の手順に沿ってインストールできたらGCPのtutorialを進めていく