Skip to content

docker-compose-prod.yml 파일을 이용하여 컨테이너 실행 시, application-prod.yml 파일의 설정이 반영되지 않는 문제 #13

@daily1313

Description

@daily1313

Summary

  • container 실행 시, application-prod.yml의 jpa.hibernate.ddl-auto(create-drop) 설정이 적용되지 않아 DB table이 초기화 되지 않는 문제 발생

Describe

docker-compose-prod.yml

version: '3.8'
services:

  app:
    image: ${APP_IMAGE}  # TODO 배포 시 .env 추가
    build: .
    restart: always
    ports:
      - "${APP_LOCAL_PORT}:${APP_SERVER_PORT}"
    environment:
      SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
      SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL}  # TODO 배포 시 .env 추가
      SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
      SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
    env_file:
      - .env

application-prod.yml (배포 서버에서 vi로 수정)

spring:

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: ${SPRING_DATASOURCE_URL}
    username: ${SPRING_DATASOURCE_USERNAME}
    password: ${SPRING_DATASOURCE_PASSWORD}

  jpa:
    open-in-view: false
    show-sql: true
    hibernate:
      ddl-auto: create-drop
    properties:
      hibernate:
        format_sql: true
        naming:
          physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    database: mysql
    database-platform: org.hibernate.dialect.MySQL8Dialect

.env

APP_IMAGE = backend
SPRING_DATASOURCE_URL = jdbc:mysql://[RDS Endpoint]:3306/allercheck _db
SPRING_DATASOURCE_USERNAME = allercheck
SPRING_DATASOURCE_PASSWORD = allercheck!
SPRING_PROFILES_ACTIVE = prod
APP_LOCAL_PORT = 8080
APP_SERVER_PORT = 8080
  • ddl-auto 옵션이 반영되지 않고 DB의 table의 데이터가 그대로 보존되어 있음

Solution

  • 배포 서버에서 실행중인 컨테이너를 완전히 종료시키고, 기존에 docker-compose-prod 실행으로 생성된 images까지 제거하여 다시 실행
sudo docker ps -a // docker container 정보 조회
sudo docker stop // <container name or id>
sudo docker rm // <container name or id>
sudo docker images // docker images 정보 조회
sudo docker rmi <image name> // docker images 삭제

Etc

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions