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