이번 포스팅에서는 BackEnd Server를 생성하는 과정에 대해 포스팅 해보도록 하겠다.
1. Intellij 에서 Docker 플러그인을 설치한다.
2. Dockerfile이라는 이름의 새로운 파일을 생성하고, Docker Image 생성을 위한 내용을 작성한다.
// Dokcer hub 에서 찾은 openjdk 11
FROM openjdk:11-jdk-slim-stretch
// jar 파일을 추가하기 위해 기존 jar 파일을 도커 컨테이너의 새로운 경로에 추가
ADD ./target/pampam-service-1.0-SNAPSHOT.jar pampam-service-1.0-SNAPSHOT.jar
// jar 파일 실행 명령어
CMD ["java", "-jar", "/pampam-service-1.0-SNAPSHOT.jar"]
// 필요에따라 포트 설정 // 이미지가 저장될때 이미지의 기본 포트 번호가 5555로 지정되어 Container 생성시 노출
EXPOSE 5555
Expose 옵션을 사용할 경우
Expose 옵션을 사용하지 않을 경우
3. 이후 생성한 이미지를 컨테이너에서 실행시, 상황에 맞게 지정한 포트에 대해 포트포워딩 설정을 해주거나(그림 1), expose를 Setting하지 않고 이미지를 생성한경우 Docker Compose에서 ports 옵션을 통해 직접 지정이 가능하다.(그림 2)
이후 JAR파일을 실행하기 위한 환경변수들을 지정해주면 된다.
삽질했던 내용
intelliJ에서 jar 파일을 생성하기위해 package 기능을 통해 패키징하는 과정에서 Maven에서 package 할때 test 과정이 함께 진행되어서 환경 변수를 입력하지 않으면 패키징이 안돼는 경우가 발생했다
이로 인해 jar 파일을 생성시 환경변수를 입력해놓고 패키징 할 수 밖에 없었다
이 경우 Docker Compose를 이용하여 Container를 생성시 환경 변수를 스스로 Setting하지 못하는 문제점이 발생하게된다
Docker Compose에서 사용할 수 있는 jar 파일(환경변수 Setting을 직접 할 수 있는) 생성을 위해 다음과 같은 코드를 추가해주어 test를 비활성화하여, 원하는 jar파일을 생성 할 수 있었다.
<properties>
<skipTests>true</skipTests>
</properties>
'Docker' 카테고리의 다른 글
[Docker] 도커 실습 (5) - Front Image 생성 및 Docker Hub에 Push (1) | 2024.02.17 |
---|---|
[Docker] 도커 실습 (3) - Front Server 생성 (0) | 2024.02.11 |
[Docker] 도커 실습 (2) - DB 생성 (0) | 2024.02.11 |
[Docker] 도커 실습 (1) (0) | 2024.02.09 |
[Docker] Docker란 ? (1) | 2024.02.09 |