LoginSignup
5
3

More than 5 years have passed since last update.

CircleCIでDockerビルドしECRへpushする

Posted at

developブランチにpushした時にdockerビルドし、ECRにpushする。

deploy.sh
#!/bin/sh

ECR_URI_BASE=999999999999.dkr.ecr.ap-northeast-1.amazonaws.com
TEMPORARY_IMAGE_NAME=XXX

# Build
docker build -t $TEMPORARY_IMAGE_NAME .

# ECR_URI
if [ -z "$ECR_URI_BASE" ]; then
    echo "Need to set ECR_URI_BASE"
    exit 1
fi
if [ -z "$IMAGE_TAG" ]; then
    echo "Need to set IMAGE_TAG"
    exit 1
fi
ECR_URI=$ECR_URI_BASE/$TEMPORARY_IMAGE_NAME:$IMAGE_TAG

# Login
if [ -z "$AWS_DEFAULT_REGION" ]; then
    echo "Need to set AWS_DEFAULT_REGION"
    exit 1
fi
login_cmd=`aws ecr get-login --region $AWS_DEFAULT_REGION`
eval $login_cmd

echo "Start pushing to $ECR_URI"
docker tag $TEMPORARY_IMAGE_NAME:latest $ECR_URI
docker push $ECR_URI

deploymentdeploy.shを実行するようにする。タグはコミットのrevision。

circle.yml
machine:
  timezone:
    Asia/Tokyo
  services:
    - docker

dependencies:
  override:
    - echo 0

test:
  override:
    - echo 0

deployment:
  development:
    branch: develop
    commands:
      - ./deploy.sh:
          environment:
            IMAGE_TAG: $CIRCLE_SHA1

CircleCIに以下の環境変数を設定する。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_DEFAULT_REGION

参考

5
3
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
5
3