카카오 클라우드 스쿨에서 진행한 도커 기반의 3-Tire 프로젝트
- 목표 : Front, Back, DB의 멀티 컨테이너로 도커 환경에서 서비스를 운영
- 서비스 주제 : 관심영화 리뷰 사이트
- 서비스 기능 : 영화 검색, 관심 등록, 리뷰 CRUD
192.168.56.103:3000
로 접속합니다.- 회원 가입을 위해
Signup
을 클릭하여 이동합니다. ID : test
,Password : 1234
를 입력하여 회원 가입 & 로그인을 진행합니다.
- 일간 영화 순위가 1위부터 10위까지 나타납니다. (영화진흥위원회의 openAPI를 사용함으로 해당 사이트의 문제에 따라 영화순위가 보이지 않을 수 있습니다)
- 검색창을 통해 원하는 영화를 검색할 수도 있습니다.
- Add 버튼을 누르면 [관심 영화 목록]에 추가할 수 있습니다.
- 이미 [관심 영화 목록]에 등록되어 있는 영화에 대해 Add 버튼을 누를 시 아래와 같은 경고창이 출력됩니다.
- 메인 페이지의 우상단에 위치한 하트 버튼을 클릭하면 [관심 영화 목록]페이지로 이동할 수 있습니다.
- [관심 영화 목록]으로 등록된 영화들이 나타납니다.
- 자신의 평점과 코멘트를 작성하고 Reply 버튼을 클릭하면 해당 정보를 저장할 수 있습니다.
- 평점과 코멘트를 새로 입력하요 Reply 버튼을 클릭하면 수정할 수 있습니다.
- [관심 영화]의 우상단에 위치한 하트 버튼을 클릭하면 관심 목록에서 제거할 수 있습니다.
- compose 파일 생성
mkdir compose
- docker compose 파일 실행
- front-end, back-end, database에 필요한 환경변수 설정
- front-end, back-end, database가 속할 custom bridge 설정
version: "3.8"
services:
mydb:
image: mariadb:10.2
environment:
- MARIADB_ROOT_PASSWORD=1234
- MARIADB_DATABASE=movie
ports:
- "3306:3306"
command:
- --character-set-server=utf8
- --collation-server=utf8_general_ci
networks:
back-net:
myapp:
build:
context: ./backend
dockerfile: Dockerfile
environment:
SPRING_DATASOURCE_URL: jdbc:mariadb://mydb:3306/movie?useSSL=false
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: 1234
SERVER_PORT: 8080
expose: 8080
depends_on:
- mydb
restart: always
networks:
- back-net
- front-net
myweb:
build:
context: ./frontend
dockerfile: Dockerfile
environment:
API_IP: myapp:8080
ports:
- "3000:3000"
depends_on:
- myapp
restart: always
networks:
- front-net
networks:
back-net: {}
front-net: {}
FROM openjdk:20-ea-11-slim-buster
COPY BoxOffice-0.0.1-SNAPSHOT.jar BoxOffice.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "BoxOffice.jar"]
FROM node:18-alpine3.15
COPY . .
RUN npm -y install
CMD ["npm", "run", "start"]