質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1078閲覧

GitLab Container RepositoryのimageをECRにpushする時の.gitlab-ci.ymlの書き方

DeepRoastBeans

総合スコア79

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/03/26 06:34

.gitlab-ci.ymlで、一度 GitLab Container Repositoryにimageをpushし、そのimageをECRにpushしたいです。

GitLab Container Repositoryからimageを取得してtagづけしようとしているのですが、No such image: とエラーが出てしまいます。取得のところがうまくいってない様に見えるのですが、どのように書いたら良いのでしょうか?

yaml

1stages: 2 - dev 3 - deploy 4 5# GitLab Container Repositoryにpush 6build-job: 7 stage: dev 8 image: docker:latest 9 services: 10 - docker:dind 11 before_script: 12 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY 13 script: 14 - docker build --pull -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . 15 - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA 16 17# GitLab Container RepositoryのimageをECRにpush 18deploy-job: 19 stage: deploy 20 image: docker:latest 21 services: 22 - docker:dind 23 before_script: 24 - apk add --update py-pip 25 - pip install awscli 26 - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID 27 - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY 28 - aws configure set region $AWS_DEFAULT_REGION 29 - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin $ECR_REPOSITORY 30 script: 31 - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $ECR_REPOSITORY:$CI_COMMIT_SHA 32 - docker push $ECR_REPOSITORY:$CI_COMMIT_SHA

$ docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $ECR_REPOSITORY:$CI_COMMIT_SHA
Error response from daemon: No such image: registry.gitlab.com/hoge/fuga:*************

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

yaml

1 before_script: 2 - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY 3 - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA 4 - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $ECR_REPOSITORY_NAME:$CI_COMMIT_SHA 5 - docker logout 6 - apk add --update py-pip 7 - pip install awscli 8 - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID 9 - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY 10 - aws configure set region $AWS_DEFAULT_REGION 11 - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin $ECR_REPOSITORY 12 script: 13 - docker push $ECR_REPOSITORY_NAME:$CI_COMMIT_SHA

投稿2022/03/26 07:47

DeepRoastBeans

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問