0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker Hubからコンテナイメージを取得してECRに登録するまでの手順をシェルスクリプトで自動化する

Posted at

Dockerfileからイメージを作成してECRリポジトリへプッシュするまでをシェルスクリプトで自動化したいと思います。

ECRリポジトリの作成

AWS CLIを使用して作成していきます。

aws ecr create-repository --repository-name my-ecr-repo --region ap-northeast-1

Screenshot 2023-09-17 at 16.12.39.png

作成が確認できました。

次にDocker Hubからコンテナイメージを取得してECRに登録するまでの手順をシェルスクリプトを作成していきたいのですが、1つずつ整理していきます。

Dockerfile

以下のDockerfileを使用します。

FROM ubuntu:latest

# Install dependencies
RUN apt-get update && \
 apt-get -y install apache2

# Install apache and write hello world message
RUN echo 'Hello World!' > /var/www/html/index.html

# Configure apache
RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \
 echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \
 echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ 
 echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ 
 chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh

Dockerfileからイメージを作成するコマンド

Dockerfileが存在するディレクトリ内で実行

docker build -t my-ecr-repo .

ECRへのログインコマンド

aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin [AccountID].dkr.ecr.ap-northeast-1.amazonaws.com

DockerイメージをECR用にタグ付け

docker tag my-ecr-repo:latest [AccountID].dkr.ecr.ap-northeast-1.amazonaws.com/my-ecr-repo:latest

ECRリポジトリへプッシュ

docker push 445605964569.dkr.ecr.ap-northeast-1.amazonaws.com/my-ecr-repo:latest

これらを元にシェルスクリプトを書いていきます。

push-ecr.sh

#!/bin/bash

# 変数
DOCKER_IMAGE_NAME="my-ecr-repo" # Dockerイメージ名
AWS_ACCOUNT_ID="[AcountID]"     # AWSアカウントID
AWS_REGION="ap-northeast-1"     # AWSリージョン
ECR_REPOSITORY="my-ecr-repo"    # ECRリポジトリ名

# Dockerfileからイメージを作成
docker build -t $DOCKER_IMAGE_NAME .

# ECRにログイン
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com

#イメージをECR用にタグ付け
docker tag $DOCKER_IMAGE_NAME:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPOSITORY:latest

# イメージをECRにプッシュ
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPOSITORY:latest

echo "コンテナイメージをECRに登録しました。"

こちら実行したところ、、、

Screenshot 2023-09-17 at 17.01.31.png

無事ECRへのプッシュが確認できました。

今回はこの辺で。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?