이수아

[개별 스크럼]11. 10(금) CI/CD를 위한 Docker+깃허브액션 공부

모잉프로젝트 2023. 11. 13. 18:08

https://velog.io/@kmw10693/%EC%9C%88%EB%8F%84%EC%9A%B010-%EB%8F%84%EC%BB%A4-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[Docker] 윈도우10 OS에 도커 설치하기

도커란? 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼 컨테이너란 다양한 OS에 여러 application이 올려져 있는 것이라고 생각하면 된다. 도커의 장점 빠르고 가벼운 가상화 솔루션 호스트의 운

velog.io

도커 설치 좀 걸린다 시간이

 

https://velog.io/@kmw10693/CICD-Docker-compose-Nginx-SSL-Github-Actions%EC%9C%BC%EB%A1%9C-%EC%9E%90%EB%8F%99-%EB%B0%B0%ED%8F%AC-%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0%EC%9E%84%EC%8B%9C

 

[CICD] Docker-compose + Nginx SSL + Github Actions으로 자동 배포 환경 만들기

Dockerfile 작성스프링 프로젝트 파일에 도커 파일을 작성합니다. 도커 파일은 이미지를 빌드하여, 이미지를 기반으로 컨테이너가 실행됩니다. base이미지를 openjdk:11로 설정 및 JAR_FILE 변수 파일경

velog.io

스프링부트코드가 있는 인텔리제이에 Dockerfile을 만들어준다.

도커는 기본적으로 이미지가 있어야 컨테이너를 생성하고 동작시킬 수 있어서, dockerfile은 필요한 최소한의 패키지를 설치하고 동작하기 위한 자신만의 설정을 담은 파일이랜다. 이 파일로 이미지를 생성(빌드)하는 것!! - 이말의 출처는 위의 링크 ㅎㅎ

 

그래서 결론은 자신만의 설정 해주기 위한 파일 약간 application.properties같은 느낌?

FROM => 빌드하는 이미지와 기반 이미지를 지정

ARG => docker image build를 실행할때 사용하는 변수

COPY => 호스트에서 컨테이너로 파일 및 디렉토리를 복사

ENTRYPOINT => 컨테이너를 실행 가능 파일로 사용할 때 정의하는 명령. CMD와 ENTRYPOINT를 함께 사용할 수 있다. 

 

결론은 openjdk:11이미지를 docker hub로부터 다운받고 JAR_PATH라는 이름의 변수에 build/libs 값 설정하고, *.jar모든 파일을 현재 디렉토리에 카피하겠다. 또한 java jar명령어를 돌리겟다는 뜻.

 

해당 디렉토리에서 

docker build -t spring .

명령어 입력한다.

그런데 오류가 남.

오류 코드를 보니

나는 jar파일이 target밑에 생기는데 bulid/libs라고 경로를 저장했었음. 그래서 코드를 수정

ARG JAR_FILE=target/moing-backend-0.0.1-SNAPSHOT.jar

경로를 수정함. 

 

그랬더니 완!!!

 

이미지 확인

이미지 푸쉬가 안되는데 경희말을 들어보니 docker hub를 통해 이미지 올리는 건 모두 public으로 설정되기 때문에 보안에 안좋다!! 그래서 다른 방법으로 고민중....
https://velog.io/@snghyun331/Docker-AWS-EC2Ubuntu%EC%97%90%EC%84%9C-Docker%EB%A1%9C-Nginx-%EB%9D%84%EC%9A%B0%EA%B8%B0

 

[Docker] AWS EC2(Ubuntu)에서 Docker로 웹 띄우기

3차 프로젝트 고도화

velog.io