From 8a4317407e8a098f18513e315c6753953e1b6808 Mon Sep 17 00:00:00 2001 From: Yongbum Kim Date: Fri, 27 Mar 2026 02:21:38 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=B0=B0=ED=8F=AC=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EB=B3=80=EC=88=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 추가된 redis 환경에 대한 환경변수들을 추가했습니다. - CI 과정에서도 application-secret.yml 파일을 생성할 수 있도록 구조를 변경했습니다. - 로컬 환경과 운영 환경을 분리하기 위한 profile 설정을 추가했습니다. issue #54 --- .github/workflows/CI.yml | 3 ++ docker-compose.yml | 40 +++++-------------------- src/main/resources/application.yml | 47 ++++++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 39 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c78f4a5..b285735 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -32,6 +32,9 @@ jobs: - name: Gradle 명령 실행을 위한 권한을 부여합니다. run: chmod +x gradlew + - name: application-secret.yml 파일 생성 + run: echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application-secret.yml + - name: Gradle clean build를 수행합니다. run: ./gradlew clean build diff --git a/docker-compose.yml b/docker-compose.yml index dc72910..f93eacc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,50 +8,25 @@ services: ports: - "8080:8080" depends_on: - - db - - redis + redis: + condition: service_healthy environment: + SPRING_PROFILES_ACTIVE: prod SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL} SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME} SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD} - SPRING_REDIS_HOST: ${SPRING_REDIS_HOST} - SPRING_REDIS_PORT: ${SPRING_REDIS_PORT} + REDIS_HOST: ${SPRING_REDIS_HOST} + REDIS_PORT: ${SPRING_REDIS_PORT} networks: - retrip-net restart: always - db: - image: mysql:8.0 - platform: linux/amd64 - container_name: retrip-db - env_file: - - .env - ports: - - "3306:3306" - environment: - MYSQL_USER: ${MYSQL_USER} - MYSQL_DATABASE: ${MYSQL_DATABASE} - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - volumes: - - dbdata:/var/lib/mysql - - ./docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql - - ./docker/mysql/mysql-healthcheck.sh:/usr/local/bin/mysql-healthcheck.sh - networks: - - retrip-net - restart: always - healthcheck: - test: [ "CMD-SHELL", "/usr/local/bin/mysql-healthcheck.sh" ] - interval: 10s - timeout: 5s - retries: 5 - start_period: 20s - redis: image: redis:7 platform: linux/amd64 container_name: retrip-redis - ports: - - "6379:6379" + expose: + - ${SPRING_REDIS_PORT} networks: - retrip-net restart: always @@ -128,7 +103,6 @@ services: - retrip-net volumes: - dbdata: grafana-storage: certbot_data: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 30ee684..c579292 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -53,18 +53,16 @@ server: --- spring: - # Profile Config config: activate: on-profile: local datasource: - driver-class-name: ${db.local.driver-class-name} url: ${db.local.url} username: ${db.local.username} password: ${db.local.password} + driver-class-name: ${db.local.driver-class-name} - # JPA Config jpa: show-sql: true database: mysql @@ -74,11 +72,10 @@ spring: hibernate: format_sql: true - # Redis Config data: redis: - host: ${redis.host} - port: ${redis.port} + host: ${redis.local.host} + port: ${redis.local.port} codec: max-in-memory-size: 10MB @@ -89,5 +86,43 @@ retrip: max-count: 8 max-size-mb: 10 + processing: + timeout-seconds: 90 + +--- +spring: + config: + activate: + on-profile: prod + + datasource: + url: ${db.prod.url} + username: ${db.prod.username} + password: ${db.prod.password} + driver-class-name: ${db.prod.driver-class-name} + + jpa: + show-sql: false + database: mysql + hibernate: + ddl-auto: validate + properties: + hibernate: + format_sql: false + + data: + redis: + host: ${redis.prod.host} + port: ${redis.prod.port} + + codec: + max-in-memory-size: 10MB + +retrip: + image: + min-count: 5 + max-count: 20 + max-size-mb: 10 + processing: timeout-seconds: 90 \ No newline at end of file