Skip to content

Commit

Permalink
chore: Docker 파일 정리 및 설정 수정
Browse files Browse the repository at this point in the history
- 개발 환경에서 사용할 Docker 관련 파일들을 docker 디렉토리에 정리
- db, redis, rabbitmq, nginx, api, recsys 모두 배포된 이미지를 사용하여 컨테이너를 실행하는 docker-compose.yml를 따로 추가
  • Loading branch information
JadeKim042386 committed Aug 27, 2024
1 parent c04dc4c commit a174e19
Show file tree
Hide file tree
Showing 13 changed files with 152 additions and 14 deletions.
134 changes: 134 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
services:
fresh-trash-database:
container_name: fresh-trash-database
cpus: 1
mem_limit: 1g
healthcheck:
test: ["CMD", "mysqladmin", "ping", "--password=$MARIADB_ROOT_PASSWORD"]
interval: 40s # healthcheck 실행 간격
timeout: 30s # healthcheck 완료되기 기다리는 시간
retries: 3 # healthcheck 실패한 후 재시도할 횟수
start_period: 60s # 초기화 시간 (안정적으로 실행되기까지 대기하는 시간)
image: jade0423786/fresh-trash-database:${DB_VERSION}
environment:
- MARIADB_DATABASE=fresh_trash
- MARIADB_USER=${SPRING_DATASOURCE_USER}
- MARIADB_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
- MARIADB_ROOT_PASSWORD=${SPRING_DATASOURCE_ROOT_PASSWORD}
volumes:
- ./docker/database/mariadb/conf.d:/etc/mysql
- ./docker/database/mariadb/initdb.d:/docker-entrypoint-initdb.d
ports:
- "3307:3307"
networks:
- docker_app
fresh-trash-redis:
container_name: fresh-trash-redis
cpus: 1
mem_limit: 500m
image: jade0423786/fresh-trash-redis:${REDIS_VERSION}
ports:
- "6379:6379"
networks:
- docker_app
fresh-trash-rabbitmq:
container_name: fresh-trash-rabbitmq
cpus: 1
mem_limit: 1g
healthcheck:
# https://www.rabbitmq.com/docs/monitoring#health-checks
test: rabbitmq-diagnostics -q ping
interval: 40s # healthcheck 실행 간격
timeout: 30s # healthcheck 완료되기 기다리는 시간
retries: 3 # healthcheck 실패한 후 재시도할 횟수
start_period: 60s # 초기화 시간 (안정적으로 실행되기까지 대기하는 시간)
image: jade0423786/fresh-trash-rabbitmq:${RABBITMQ_VERSION}
environment:
- RABBITMQ_DEFAULT_USER=${AMQP_USER}
- RABBITMQ_DEFAULT_PASS=${AMQP_PASS}
ports:
- "15672:15672"
- "61613:61613"
- "5672:5672"
networks:
- docker_app
fresh-trash-nginx:
container_name: fresh-trash-nginx
image: jade0423786/fresh-trash-nginx:${NGINX_VERSION}
cpus: 1
mem_limit: 1g
depends_on:
- fresh-trash-api
ports:
- "80:80"
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- docker_app
fresh-trash-api:
image: jade0423786/fresh-trash-api:${API_VERSION}
container_name: fresh-trash-api
cpus: 2
mem_limit: 4g
depends_on:
fresh-trash-rabbitmq:
condition: service_healthy
fresh-trash-database:
condition: service_healthy
environment:
- DB_URL=${DB_URL}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- LOCAL_FILE_ABS_PATH=${LOCAL_FILE_ABS_PATH}
- TOKEN_SECRET_KEY=${TOKEN_SECRET_KEY}
- TOKEN_ACCESS_EXPIRED_MS=${TOKEN_ACCESS_EXPIRED_MS}
- GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID}
- GOOGLE_OAUTH_CLIENT_SECRET=${GOOGLE_OAUTH_CLIENT_SECRET}
- NAVER_OAUTH_CLIENT_ID=${NAVER_OAUTH_CLIENT_ID}
- NAVER_OAUTH_CLIENT_SECRET=${NAVER_OAUTH_CLIENT_SECRET}
- KAKAO_OAUTH_CLIENT_ID=${KAKAO_OAUTH_CLIENT_ID}
- KAKAO_OAUTH_CLIENT_SECRET=${KAKAO_OAUTH_CLIENT_SECRET}
- S3_BUCKET_NAME=${S3_BUCKET_NAME}
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
- S3_SECRET_KEY=${S3_SECRET_KEY}
- AMQP_HOST=${AMQP_HOST}
- AMQP_PORT=${AMQP_PORT}
- AMQP_USER=${AMQP_USER}
- AMQP_PASS=${AMQP_PASS}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- OAUTH2_REDIRECT_URI=${OAUTH2_REDIRECT_URI}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- API_KEY=${API_KEY}
- WEBHOOK_SLACK_URL=${WEBHOOK_SLACK_URL}
- REC_SYS_HOST=${REC_SYS_HOST}
- PROFILE_ENDPOINT=${PROFILE_ENDPOINT}
- REC_PRODUCT_PURCHASE=${REC_PRODUCT_PURCHASE}
- REC_AUCTION_PURCHASE=${REC_AUCTION_PURCHASE}
- RECOMMEND_PRODUCT=${RECOMMEND_PRODUCT}
- RECOMMEND_AUCTION=${RECOMMEND_AUCTION}
- REC_LIMIT=${REC_LIMIT}
ports:
- "8080:8080"
- "8090:8090"
networks:
- docker_app
fresh-trash-recsys:
image: jade0423786/fresh-trash-recsys:${RECSYS_VERSION}
container_name: fresh-trash-recsys
cpus: 1
mem_limit: 1g
depends_on:
fresh-trash-database:
condition: service_healthy
ports:
- "9080:9080"
networks:
- docker_app

networks:
docker_app:
driver: bridge


4 changes: 3 additions & 1 deletion Dockerfile → docker/api/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM amazoncorretto:17
RUN mkdir -p deploy/imgs
WORKDIR /deploy
COPY ./build/libs/fresh-trash-backend-1.1.2.jar api.jar

ARG API_VERSION
COPY ./build/libs/fresh-trash-backend-${API_VERSION}.jar api.jar
ENTRYPOINT ["java", "-jar", "/deploy/api.jar", "--spring.profiles.active=local", "--logging.level.root=error"]
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 6 additions & 6 deletions database/docker-compose-db.yml → docker/docker-compose-db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ services:
container_name: fresh-trash-database
build:
dockerfile: Dockerfile
context: ./mariadb
context: database/mariadb
cpus: 1
mem_limit: 1g
image: fresh-trash-database:0.0.1
image: fresh-trash-database:${DB_VERSION}
environment:
- MARIADB_DATABASE=fresh_trash
- MARIADB_USER=${SPRING_DATASOURCE_USER}
- MARIADB_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
- MARIADB_ROOT_PASSWORD=${SPRING_DATASOURCE_ROOT_PASSWORD}
volumes:
- ./mariadb/conf.d:/etc/mysql
- ./mariadb/initdb.d:/docker-entrypoint-initdb.d
- ./database/mariadb/conf.d:/etc/mysql
- ./database/mariadb/initdb.d:/docker-entrypoint-initdb.d
ports:
- "3307:3307"
networks:
Expand All @@ -23,10 +23,10 @@ services:
container_name: fresh-trash-redis
build:
dockerfile: Dockerfile
context: ./redis
context: database/redis
cpus: 1
mem_limit: 500m
image: fresh-trash-redis:0.0.1
image: fresh-trash-redis:${REDIS_VERSION}
ports:
- "6379:6379"
networks:
Expand Down
16 changes: 9 additions & 7 deletions docker-compose-local.yml → docker/docker-compose-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ services:
container_name: fresh-trash-rabbitmq
build:
dockerfile: Dockerfile
context: ./rabbitmq
context: rabbitmq
cpus: 1
mem_limit: 1g
healthcheck:
Expand All @@ -13,7 +13,7 @@ services:
timeout: 30s # healthcheck 완료되기 기다리는 시간
retries: 3 # healthcheck 실패한 후 재시도할 횟수
start_period: 60s # 초기화 시간 (안정적으로 실행되기까지 대기하는 시간)
image: fresh-trash-rabbitmq:0.0.1
image: fresh-trash-rabbitmq:${RABBITMQ_VERSION}
environment:
- RABBITMQ_DEFAULT_USER=${AMQP_USER}
- RABBITMQ_DEFAULT_PASS=${AMQP_PASS}
Expand All @@ -25,10 +25,10 @@ services:
- docker_app
fresh-trash-nginx:
container_name: fresh-trash-nginx
image: fresh-trash-nginx:0.0.1
image: fresh-trash-nginx:${NGINX_VERSION}
build:
dockerfile: Dockerfile
context: ./nginx
context: nginx
cpus: 1
mem_limit: 1g
depends_on:
Expand All @@ -40,11 +40,13 @@ services:
networks:
- docker_app
fresh-trash-api:
image: fresh-trash-api:1.0.0
image: fresh-trash-api:${API_VERSION}
container_name: fresh-trash-api
build:
dockerfile: Dockerfile
context: ./
dockerfile: docker/api/Dockerfile
context: ../
args:
- API_VERSION=${API_VERSION}
cpus: 2
mem_limit: 4g
depends_on:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit a174e19

Please sign in to comment.