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?

AWS Fargate dockefileをECRにプッシュしてみた

0
Posted at

はじめに

Fargateについて知識を深めるために構築してみた
まずはFargateのdockerfileをECRにプッシュしてみました。

手順

東京リージョンを選択してcloudshellを起動する。

dockerfile格納用のフォルダを作成する

dockerfile格納用のフォルダ作成

mkdir Fargate

Fargateのフォルダを作成する。

cd Fargate

現在のパスを確認する

$ pwd
/home/cloudshell-user/Fargate

dockerfileファイルを作成する

dockerfileファイルを作成する

$ vi dockerfile
# Amazon Linux 2023 ベースイメージを使用
FROM amazonlinux:2023

# httpd をインストール
RUN dnf -y install httpd && dnf clean all

# 必要なポートを公開
EXPOSE 80

# Apache を前景モードで起動
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

ECRにプライベートリポジトリにリポジトリを作成する

サービス >> ECR >> 左ペインのリポジトリをクリックする。
プライベートリポジトリの画面にて[リポジトリを作成]をクリックする。

image.png

※赤枠以外はデフォルト値でプライベートリポジトリを作成しました。

作成したtestのリポジトリをクリックして[プッシュコマンドを表示]するをクリックする

ECRのプライベートリポジトリへイメージをプッシュする

1.認証トークンを取得し、レジストリに対して Docker クライアントを認証します。AWS CLI を使用してください:

※AWS CLI および Docker 向けの最新バージョンがインストールされていることを確認します。
 今回cloudshellのため、CLIとdockerが入っていました。

dockerfileが格納されているフォルダでプッシュコマンドを実行する必要があります。
カレントディレクトリは確認必要

Fargate $ pwd
/home/cloudshell-user/Fargate
Fargate $ ls -tlr
total 4
-rw-r--r--. 1 cloudshell-user cloudshell-user 269 May  3 04:49 dockerfile
Fargate $ 
Fargate $ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com
WARNING! Your password will be stored unencrypted in /home/cloudshell-user/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

以下のコマンドを使用して、Docker イメージを構築します。

Fargate $ docker build -t test .

出力結果を省略
[+] Building 29.6s (6/6) FINISHED                                                                                                                                                             
 => => naming to docker.io/library/test

構築が完了したら、このリポジトリにイメージをプッシュできるように、イメージにタグを付けます。
イメージタグのバージョンを1としました。

$ docker tag test:latest AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/test:1

出力結果なし

以下のコマンドを実行して、新しく作成した AWS リポジトリにこのイメージをプッシュします:

Fargate $ docker push AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/test:1

出力結果
The push refers to repository [AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/test]
8c9fd5663bb5: Pushed 
74a0024ff955: Pushed 
1: digest: sha256:e893a0f98665ec557e19dee87786dd578d740311d0877a1b0b432d2caec9d2fe size: 741
Fargate $ 

ECRのプライベートリポジトリにイメージが作成されたことを確認

プッシュすることでイメージタグ1のイメージが作成されていることを確認した。

image.png

補足情報

イメージタグをlatestに指定した場合は、イメージ名がlatestと表示されます。
バージョンごとにイメージを管理している場合は、latestではなくバージョン名を指定してください

Fargate $ docker tag test:latest AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/test:latest

Fargate $ docker push AWSアカウント番号.dkr.ecr.ap-northeast-1.amazonaws.com/test:latest

image.png

まとめ

FargateはcloudshellからECRへイメージをプッシュ出来ることが分かりました。
EC2からECRへイメージをプッシュする場合は、EC2にてCLIとdockerのパッケージが入っている必要があります。

ECRのイメージをプッシュする際は、dockerfileが格納してあるフォルダに移動してコマンドを実行する必要があります。フォルダを誤ると事故の元です。

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?