🍞

aws ECR 登録する手順

2022/05/29に公開

概要:

aws ECR 登録する メモとなります。

  • aws-cli, dockerは準備されている事が前提になります。

  • expressコンテナを、pushする例になります。

  • ポート番号は、3000番を使います


構成

  • aws ECR
  • docker
  • express

関連


参考のコード

https://gist.github.com/kuc-arc-f/8d42a4ac17a72e5fa265c7aee65eec24


準備

  • IAM で、ユーザー作成

  • 権限は、AdministratorAccess 追加しました

  • アクセスキー、シークレットキー をメモ


  • aws configure (設定済の方は、読み飛ばして下さい)

  • region : es-east-1 の例です

AWS Access Key ID [None]: {アクセスキー(各自)}
AWS Secret Access Key [None]: {シークレットアクセスキー(各自)}
Default region name [None]: es-east-1
Default output format [None]: json

  • Amazon ECR > リポジトリ, リポジトリの作成

  • リポジトリ名を、入力

  • 暗号化設定: KMS : 有効


express環境の準備

  • 上記のgist 参考

  • Dockerfile

FROM node:14.15.4

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000
CMD [ "node", "server.js" ]
  • server.js
server.js
'use strict';

const express = require('express');

// Constants
const PORT = 3000;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World-123');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);


  • package.json
{
    "name": "express_app",
    "version": "1.0.0",
    "description": "Node.js on Docker",
    "author": "First Last",
    "main": "server.js",
    "scripts": {
      "start": "node server.js"
    },
    "dependencies": {
      "express": "^4.16.1"
    }
  }


  • .dockerignore
node_modules
npm-debug.log

  • 試しにローカル起動
docker build -t express-ecs-repo .

### run
sudo docker run -it -p 3000:3000 express-ecs-repo

localhost:3000/ が開ければ、確認OK


ECR > リポジトリ > 追加したrepo

  • プッシュコマンドの表示、押す


  • aws ecr get-login-password --region us-east-1 ... , の部分実行

  • エラーの場合、下記を試す (aws ecr get-login ...)

  • docker loginのコマンド コピーする

  • docker loginのコマンド実行、最後に Login Succeeded 表示されるとOK

aws ecr get-login --no-include-email --region us-east-1

docker login -u AWS -p xxxx== https://XXXX.dkr.ecr.us-east-1.amazonaws.com

#
docker login -u AWS -p xxxx== https://XXXX.dkr.ecr.us-east-1.amazonaws.com

Login Succeeded


  • docker build
docker build -t express-ecs-repo .
  • tag-add
docker tag express-ecs-repo:latest XXXX.dkr.ecr.us-east-1.amazonaws.com/express-ecs-repo:latest
  • push
docker push XXXX.dkr.ecr.us-east-1.amazonaws.com/express-ecs-repo:latest
  • 完了したら、
    ECR > レポジトリ > repo選択 で、イメージが表示されると完了

....

Discussion