본문 바로가기
Jenkins

Jenkins - AWS ECR에 이미지 Push

by 홍띠 2023. 8. 20.

1. 플러그인 설치

  • Amazon ECR
  • Docker Pipeline

2. Docker compose 파일 수정

아래 두개의 볼륨이 없으면, docker: not found 에러 발생

- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock

결과 docker-compose.yml 파일

services:
  jenkins:
    image: jenkins/jenkins:lts
    user: root
    privileged: true
    ports:
      - "8090:8080"
    volumes:
      - ./jenkins_home:/var/jenkins_home
      - /usr/bin/docker:/usr/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock
  ssh-agent:
    image: jenkins/ssh-agent

3. Credentials 등록

AWS ECR에 엑세스가 가능한 AWS Access Key Id 와 Secret Access Key를 Credential로 등록해준다.

4. 파이프라인 작성

scripted 문법으로 작성된 코드이다.

node {
    stage('init') {
        // cleanup current user docker credentials
        sh 'rm -f ~/.dockercfg ~/.docker/config.json || true'
    }
    stage('Build Image') {
    	// 빌드할 이미지:태그를 명시하고, 빌드 위치를 지정
        customImage = docker.build("demoImage:0.1","/var/jenkins_home/docker-zip/demo-docker")
    }
    stage("Push Image") {
        // ECR 레포지토리 정보를 입력하고, 3에서 등록한 credential을 지정해준다.
        docker.withRegistry('https://{account_number}.dkr.ecr.{region}.amazonaws.com', 'ecr:{region}:{credential_name}') {
            //push the image
            customImage.push()
        }
    }
}

 

'Jenkins' 카테고리의 다른 글

Jenkins - Downstream Job으로 파라미터 전달하기  (0) 2023.06.18
Docker이용해서 Jenkins 설치  (0) 2023.06.07