Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BSVR-25] docker 추가 #11

Merged
merged 22 commits into from
Jul 7, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
33400d2
feat : server와 DB용 docker compose 추가
wjdwnsdnjs13 Jul 1, 2024
9e8f211
fix : 윈도우에서 makeGitHooksExecutable 에러 fix
wjdwnsdnjs13 Jul 2, 2024
2987bb3
feat : docker-compose 타임존 추가
wjdwnsdnjs13 Jul 2, 2024
caf5d9e
feat : dockerfile 구현
wjdwnsdnjs13 Jul 2, 2024
ed15fa4
feat : dockerfile 구현
wjdwnsdnjs13 Jul 3, 2024
67e0c25
remove : docker 파일 server-docker 폴더로 위치 이동
wjdwnsdnjs13 Jul 3, 2024
8ac2895
refactor : docker 이미지에 맞는 컨테이너 이름으로 변경
wjdwnsdnjs13 Jul 3, 2024
887779e
feat : 서버 애플리케이션 docker 이미지 생성을 위한 dockerfile 추가
wjdwnsdnjs13 Jul 3, 2024
ca658fb
Merge branch 'main' into feat/BSVR-25
wjdwnsdnjs13 Jul 3, 2024
36edee9
fix: 기존의 h2인메모리 드라이버와 mysql 드라이버 충돌 해결
pminsung12 Jul 5, 2024
61eb892
fix: openjdk 이미지 사용
pminsung12 Jul 5, 2024
45138a9
fix: dockerfile 사용해서 서버 이미지 빌드
pminsung12 Jul 5, 2024
15d7817
Merge branch 'main' into feat/BSVR-25
pminsung12 Jul 5, 2024
d2e9341
docs : docker db gitignore 추가
wjdwnsdnjs13 Jul 6, 2024
776da75
docs : 삭제된 p6spy 추가
wjdwnsdnjs13 Jul 6, 2024
54b3cc7
fix : mysql 컨테이너가 준비되기 전 server 컨테이너 동작 지연
wjdwnsdnjs13 Jul 6, 2024
a6ae20e
refactor: renaming containers
pminsung12 Jul 6, 2024
8b995b8
feat: 도커 파일에 빌드 스테이지 추가
pminsung12 Jul 7, 2024
95fff61
build: 기존 도커파일 삭제
pminsung12 Jul 7, 2024
957084d
build: 개발용 도커파일 재정의
pminsung12 Jul 7, 2024
3cbf619
build: docker-compose up --build를 통해 gradle 빌드까지 수행하도록 개선
pminsung12 Jul 7, 2024
7b8166a
chore: gitignore shell script 파일 추가
pminsung12 Jul 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# dockerfile 실행 전 server wiki를 참고하여 명령어를 사용해주세요.
# spring boot 애플리케이션이 빌드되어야 실행 가능해요!

# ubuntu 20.04 버전을 기반으로 합니다.
FROM ubuntu:20.04

# RUN 명령어는 명령어를 실행시키는 구문입니다.
# 기본적으로는 apt를 사용하는 것으로 했지만, yum 등으로 바꿔도 됩니다. (ubuntu에선 주로 apt를 사용합니다)
# RUN은 빌드 시 적용 -> 도커 이미지에 반영됨!
RUN apt update && apt install -y openjdk-17-jdk
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우분투를 깔아서 jdk를 설치하기보다 그냥 openJDK이미지를 바로 사용하는 게 어때? 더 가볍고 자바 설치과정도 필요 없을 것 같아


# 컨테이너 내의 작업 디렉토리 설정
WORKDIR /spot

# 빌드 결과물 복사
COPY build/libs/*.jar spot-server.jar
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

루트 build/libs/*.jar에는 plain-jar만 있어서 실행 안 될 것 같응뒤?!
executable jar를 활용하도록 수정해야 할 것 같아~


# 8080 포트 사용
EXPOSE 8080

# 컨테이너 실행과 함께 spot-server.jar (서버 jar 파일)을 실행
ENTRYPOINT ["java","-jar","spot-server.jar"]
25 changes: 25 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# docker-compose.yml

services:
mysql:
container_name: SPOT-db
image: mysql:8 # 선호하는 버전 있을 경우 선정 예정!
ports:
- 3306:3306 # 혹시나 기존에 MySQL 사용 중일 경우 앞자리를 다른 포트로 바꿔야함.
volumes:
- ./db/mysql/data:/var/lib/mysql # 기존 데이터 파일과 격리를 위해 db/mysql/data 로 설정함!
command:
- '--character-set-server=utf8mb4'
- '--collation-server=utf8mb4_unicode_ci'
environment:
TZ : "Asia/Seoul"
MYSQL_DATABASE: spot # DB 이름 선정 시 변경 예정.
MYSQL_USER: test1234 # 임시 유저
MYSQL_PASSWORD: test1234 # 임시 비밀번호
server:
container_name: spot-server-docker
image: ubuntu:20.04
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

도커 파일로 우분투 빌드해서 새로 우분투 이미지를 가져오는 게 아니라 그걸 그대로 쓰면 될 것 같아!
build . 를 사용하는 게 어때?

ports:
- 8080:80 # 80번 - 80번 매칭
volumes:
- ./app:./app
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러면 서버 부분은 아래처럼만 설정하면 돼

  server:
    build: . # 디렉토리에 있는 도커파일 이용해서 이미지 빌드
    container_name: spot-server-docker
    ports:
      - 8080:8080
    depends_on: # 항상 mysql 실행하고 서버 실행되게 .
      - mysql
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/spot
      SPRING_DATASOURCE_USERNAME: test1234
      SPRING_DATASOURCE_PASSWORD: test1234
      ```