도커 컴포즈
업무하면서 도커를 적용해야하는 프로젝트가 있다. 아직 풀리지 않은 이슈들도 있는데
그거는 다른 포스팅에서 진행하도록 하고,
우선 도커 컴포즈에 대해 포스팅을 진행한다.
짧은 회고
지금까지 나의 방식은
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설계보다 서버쪽 관리에 업무가 더 치중되어있는것 같다.
도움이 아주 많이 되는것 같다.
네트워크 지식도 점차 쌓여가는 것이 흡족하다.
'클라우드' 카테고리의 다른 글
OpenSSH (0) | 2022.08.09 |
---|---|
[Docker] 도커란 (0) | 2022.08.05 |