使用Docker Compose执行Liquibase PostgreSQL迁移时,容器内已存在master.yaml却提示文件不存在的问题求助
使用Docker Compose执行Liquibase PostgreSQL迁移时,容器内已存在master.yaml却提示文件不存在的问题求助
各位好,我最近在通过Docker Compose运行Liquibase来给PostgreSQL数据库做迁移,遇到了一个很费解的问题:明明master.yaml已经正确挂载到Liquibase容器的/liquibase/changelog目录下,我进入容器查看也能看到这个文件,但执行迁移命令的时候却一直收到报错:
/liquibase/changelog/master.yaml does not exist
以下是我的Docker Compose配置文件内容:
services: postgres: image: postgres:15 container_name: postgres_tiiron environment: POSTGRES_DB: ***** POSTGRES_USER: ***** POSTGRES_PASSWORD: ***** ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data networks: - tiiron-net healthcheck: test: ["CMD-SHELL", "pg_isready -U tiiron_user -d tiiron_db"] interval: 5s timeout: 5s retries: 5 liquibase: image: liquibase/liquibase:latest container_name: liquibase_tiiron volumes: - ./main-service/src/main/resources/db/changelog:/liquibase/changelog - ./main-service/src/main/resources/db/liquibase.properties:/liquibase/liquibase.properties command: --defaultsFile=/liquibase/liquibase.properties update depends_on: postgres: condition: service_healthy networks: - tiiron-net main-service: build: context: ./main-service container_name: springboot_tiiron environment: SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/tiiron_db SPRING_DATASOURCE_USERNAME: **** SPRING_DATASOURCE_PASSWORD: *** ports: - "8080:8080" depends_on: liquibase: condition: service_completed_successfully networks: - tiiron-net volumes: pgdata: networks: tiiron-net:
另外我的liquibase.properties里指定了变更日志文件的路径是:
changeLogFile: /liquibase/changelog/master.yaml
我已经确认了本地的./main-service/src/main/resources/db/changelog目录下确实存在master.yaml,而且通过docker exec -it liquibase_tiiron ls /liquibase/changelog命令也能看到这个文件在容器里,但Liquibase就是找不到它。有没有朋友遇到过类似的问题?或者能帮我排查下可能的原因?非常感谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

