Jenkins 컨테이너 생성
$ vi Dockerfile
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
Docker-compose.yml 작성
$ vi docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
컨테이너/이미지 생성
$ docker-compose up -d
ECR 푸시
Login
$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin accountID.dkr.ecr.ap-northeast-1.amazonaws.com
Tag 지정
$ docker tag ec2-user_jenkins:latest accountID.dkr.ecr.ap-northeast-1.amazonaws.com/dev:v0.1
Push
$ docker push accountID.dkr.ecr.ap-northeast-1.amazonaws.com/dev:v0.1
ECS 작업정의 생성/실행
- 데모기준 포트는 8080으로 설정 (포트 변경 시 docker-compose.yml 포트 변경할 것)
- 이미지는 ECR로 푸시한 이미지 사용
- 클러스터 & 서비스 생성 후 Jenkins 접속
- 접속 간 ECS 서비스 보안그룹이 새로 생성되었으니 8080 인바운드 추가해줄 것
- Jenkins 초기 비밀번호는 ECS log 참조