Spring & Nginx Dockerfile

duckbill413·2023년 11월 10일
0

CICD

목록 보기
4/5
post-thumbnail

SpringBoot Dockerfile

  • SpringBoot project를 Docker을 이용하여 실행하기 위한 설정

Dockerfile 작성

openjdk - Official Image | Docker Hub 링크

FROM openjdk:17

ARG JAR_FILE=build/libs/*.jar

# jar 파일 복제
COPY ${JAR_FILE} docker-sample.jar

# 실행 명령어
ENTRYPOINT ["java", "-jar", "docker-sample.jar"]
  1. springboot 빌드를 위해서 사용할 자바 버전 설정
  2. build/libs 폴더 안에 생성될 jar 파일 복제
  3. jar 파일 실행 명령어 설정

Nginx Dockerfile

1. Nginx 폴더 생성

  • 프로젝트 최상단 폴더 아래에 nginx 폴더를 생성한다.

2. Nginx default.conf 파일 작성

upstream spring-app {
    server springboot:8080;
    keepalive 1024;
}

server {
    listen 80;

    location / {
        proxy_pass http://spring-app;
        proxy_http_version  1.1;
        proxy_connect_timeout 300s;
        proxy_read_timeout 600s;
        proxy_send_timeout 600s;
        proxy_buffers 8 16k;
        proxy_buffer_size 32k;

        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    }

    sendfile        on;
    keepalive_timeout  65;
}
  • upstream의 server 주소는 이후 nginx docker-compose 작성에서 사용된다.
  • location에는 포워딩할 path를 지정할 수 있다. ex) location /, location /api

3. Nginx Dockerfile 작성

FROM nginx:latest

RUN rm /etc/nginx/conf.d/default.conf
COPY default.conf /etc/nginx/conf.d/default.conf
  • FROM에서 사용할 nginx image를 지정한다.
  • 기존에 작성한 default.conf 파일을 위의 경로로 복사하여 nginx를 설정한다.
profile
같이 공부합시다~

0개의 댓글

관련 채용 정보