ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Spring boot 프로젝트 배포
    프로젝트/아카이뷰 2024. 1. 26. 08:52

    Spring Boot 프로젝트 배포 왜 궁금했을까 ❓

    SSAFY 2학기 공통 프로젝트를 수행하는 과정에서 클라이언트와 통신하기 위해 백엔드 서버를 EC2에 띄워야 했다. NGINX 부분은 팀원분이 설정을 해놓은 상태여서 나는 .jar 파일로 빌드만 해서 넘겨주면 되는 상황이었다.

     

     

    Dockerfile

    • Docker compose를 이용해서 백엔드 API 서버를 배포하는 식으로 아키텍쳐가 구성되어 있어서 Dockerfile을 이용하여 백엔드 API를 빌드하고 이미지화 하는 식으로 진행하려고 한다.
    FROM openjdk:17
    ARG JAR_FILE=build/libs/*.jar
    COPY ${JAR_FILE} app.jar
    EXPOSE 11443
    ENV TZ Asia/Seoul
    ENTRYPOINT ["java","-jar","/app.jar"]
    • Spring boot 3.2.1을 사용하고 자바 17버전을 프로젝트에서 사용중이어서 FROM 명령어를 통해 jdk17을 pull
    • ARG 옵션을 이용해서 백엔드 빌드 파일인 .jar 파일의 경로를 설정
    • COPY를 통해 위에서 할당한 변수명을 app.jar이름으로 복사
    • EXPOSE 옵션으로 컨테이너 포트 11443으로 설정
    • ENV TZ Asia/Seoul을 통해 서버 타임 설정
    • ENTRYPOINT를 통해 java를 실행하는 parameter를 넘겨 실행

     

    Docker-compose

    version: '3.1'
    
    services:
        archiview:
            build:
                context: ./Backend/Archiview
            restart: on-failure
            container_name: archiview-server
            ports:
                - 11443:11443
    
        signaling-server:
            build:
                context: ./Backend/SignalingServer
            container_name: signaling-server
            restart: on-failure
            ports:
                - 12080:12080
                - 12443:12443
            environment:
                TZ: "Asia/Seoul"
                OPENVIDU_URL: https://i10b105.p.ssafy.io:5443
            volumes:
                - /opt/openvidu/recordings:/opt/openvidu/recordings
                - /opt/openvidu/profiles:/opt/openvidu/profiles
    networks:
        default:
            external:
                name: openvidu_default
    • Docker-compose를 통해 백엔드 API 서버 배포

    '프로젝트 > 아카이뷰' 카테고리의 다른 글

    [Docker] RUN / CMD / ENTRYPOINT의 차이  (0) 2024.01.29
    [CI/CD] Jenkins란?  (0) 2024.01.27
    [Docker] Docker란?  (0) 2024.01.25
    [Spring boot] BooleanBuilder / BooleanExpression  (0) 2024.01.24
    [Spring boot] Query DSL 동적 쿼리  (0) 2024.01.23
Designed by Tistory.