AWS EC2 서버에서 Jenkins를 사용하여 CI/CD 자동 배포 서버 구축하기!
➕ EC2 인스턴스 생성하기 + 보안 그룹 생성 및 설정하기 : Ubuntu + t2.micro
서버 생성
ssh -i [키페어 이름] [리눅스 계정명]@[EC2 퍼블릭 IPv4 DNS]
.pem
)이 존재하는 경로에서 열어줄 것ubuntu
: 계정명이 ubuntu@ip[]
로 변경되었다면 성공적으로 접속된 것!
sudo apt-get update
sudo apt-get install docker.io
: 설치 후 docker --version
을 입력했을 때, 버전이 뜨면 정상적으로 설치된 것!
sudo service docker start
: sudo systemctl status docker
를 통해 Docker의 실행 상태를 확인했을 때, active
이면 정상적으로 실행되고 있다는 뜻!
sudo docker pull mysql:[version]
mysql
이 설치됨sudo docker images
sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=[password] -d -p 3306:3306 mysql:latest
mysql-container
이 실행 중sudo docker ps -a
sudo docker exec -it mysql-container bash
bash $ mysql -uroot -p
# 실행
docker start mysql-container
# 중지
docker stop mysql-container
# 재시작
docker restart mysql-container
Dockerfile
생성 ➡️ clean
후 bootJar
을 통해 jar 파일 빌드FROM openjdk:17
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
latest
docker build -t [username/image명]:[태그명] .
8888
docker run -p [외부 포트번호(사용자 지정)]:[컨테이너 내부 포트번호(8080)] [이미지명]:[태그]
: 8888번 포트에서 프로젝트가 정상적으로 실행된다!
docker login
만으로 가능docker login -u [username]
docker push [이미지명]
sudo docker pull [이미지명]
8888
sudo docker run -d -p [외부 포트번호]:[컨테이너 내부 포트번호] [이미지명]:[태그]
ssh: connect to host [ip주소] port 22: Connection timed out
: EC2 서버에 접속되지 않는 문제 발생
➡️ 인스턴스 생성 시 적용한 보안 그룹에 ssh의 22번 포트를 열어주지 않아서 ssh에 접속할 수 없었음..
해당 보안 그룹에 22번 포트를 열어주니 정상적으로 연결됨!