kcuhcx2
kcuhcx2

Reputation: 353

Deploying my ECR image to my ECS instance via aws cli

so far in my buildspec.yml file I can create a docker image and store it in the ECR repository (I am using codepipeline). My question is how do I deploy it to my ECS instance through the buildspec.yml using the aws cli commands?

Upvotes: 0

Views: 325

Answers (1)

Harsh Manvar
Harsh Manvar

Reputation: 30083

i am sharing buildspec.yaml file have a look

version: 0.1
phases:
  pre_build:
    commands:
      - echo Setting timestamp for container tag
      - echo `date +%s` > timestamp
      - echo Logging into Amazon ECR...
      - $(aws ecr get-login --region $AWS_DEFAULT_REGION)
  build:
    commands:
      - echo Building and tagging container
      - docker build -t $REPOSITORY_NAME .
      - docker tag $REPOSITORY_NAME $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$REPOSITORY_NAME:$BRANCH-`cat ./timestamp`
  post_build:
    commands:
      - echo Pushing docker image
      - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$REPOSITORY_NAME:$BRANCH-`cat ./timestamp`
      - echo Preparing CloudFormation Artifacts
      - aws s3 cp s3://$ECS_Bucket/$ECS_SERVICE_KEY task-definition.template
      - aws s3 cp s3://$ECS_Bucket/$ECS_SERVICE_PARAMS_KEY cf-config.json
artifacts:
  files:
    - task-definition.template
    - cf-config.json

You can edit this more command for ECS instance i have return template which goes to cloud formation.

you can write simple awscli command to create cluster and pull images check this aws documentation: https://docs.aws.amazon.com/cli/latest/reference/ecs/index.html

sharing my own git check it out for more info: https://github.com/harsh4870/ECS-CICD-pipeline

Upvotes: 0

Related Questions