728x90

도커 컴포즈

업무하면서 도커를 적용해야하는 프로젝트가 있다. 아직 풀리지 않은 이슈들도 있는데

그거는 다른 포스팅에서 진행하도록 하고,

우선 도커 컴포즈에 대해 포스팅을 진행한다.

짧은 회고

지금까지 나의 방식은

Dockerfile을 생성해주고, 그 후에

도커 명령어를 통해서 개별 이미지들을 run을 해주어서 빌드를 해줬었다.

근데 이걸 쉘스크립트로 짜도 정말 불편했다.

내가 Vue와 Springboot를 둘다 배포해주어야 하는 상황이었기 때문이다.

Vue 그러니까 npm관련 실행 명령어는 또 Nodejs 공식문서를 봐가면서 습득을 했고

Vue + SpringBoot를 둘다 배포하는데에 성공했다.

일단 흐뭇했음.. 😂

따로 빌드하면서 설정해줄 것은 없어서

VueJs Dockerfile

Dockerize Vue 에서 읽은 내용으로 빌드를 진행

FROM node:lts-alpine

RUN npm install -g http-server

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm install -g @vue/cli

RUN npm run build

EXPOSE 8080

CMD [ "http-server", "dist"]

Spring Boot Dockerfile

FROM openjdk:11-jdk

ARG JAR_FILE=build/libs/\*.jar

COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "/app.jar"]

그리고 docker-compose는 최 상위 루트에서 yml파일로 만들어주어 실행하도록 한다.

  • docker-compose
    • Vue Dockerfile
    • SpringBoot Dockerfile

이런식으로 진행되어 컴포즈 파일이 두가지를 다 빌드관리를 해주는 것이다.

docker-compose.yml

version: "3.8" # 버전 명시 도커 버전이 19.03.0+ 이면 3.8

services:
  vue:
    volumes:
      - 소스위치 :/app # 소스위치 : vue WORKDIR 과 매칭
    build:
      context: 배포하고자 하는 경로 # 빌드하는 위치
      dockerfile: 도커파일 경로 # 도커파일 명시
    ports:
      - "8080:8080" # 포트 포워딩

  spring:
    build:
      context: 배포하고자 하는 경로
      dockerfile: 도커 파일 경로
    ports:
      - "8081:8081" # 포트 포워딩

이렇게 배포에 성공하였다.

요즘 자바 API설계보다 서버쪽 관리에 업무가 더 치중되어있는것 같다.

도움이 아주 많이 되는것 같다.

네트워크 지식도 점차 쌓여가는 것이 흡족하다.

728x90

'클라우드' 카테고리의 다른 글

OpenSSH  (0) 2022.08.09
[Docker] 도커란  (0) 2022.08.05

+ Recent posts