Docker 错误 - 在配置的搜索路径中找不到该文件

问题描述 投票:0回答:1

我正在尝试使用 docker 运行 liquibase 更新,但我的卷映射方式似乎不起作用,它在我的本地环境中找不到文件。有什么想法吗?

我运行以下 docker cmd:

docker run --rm --network host -v /home/richardmarais/Development/IdeaProjects/travellinck-javaee/corporateInterface/src/main/resources/db:/db \
liquibase/liquibase update \
--changelog-file=/db/local/changelog-local-master.xml \
--url="jdbc:postgresql://localhost:5431/pims" \
--username=postgres \
--password=password

并得到:

####################################################
##   _     _             _ _                      ##
##  | |   (_)           (_) |                     ##
##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##
##  | |   | |/ _` | | | | | '_ \ / _` / __|/ _ \  ##
##  | |___| | (_| | |_| | | |_) | (_| \__ \  __/  ##
##  \_____/_|\__, |\__,_|_|_.__/ \__,_|___/\___|  ##
##              | |                               ##
##              |_|                               ##
##                                                ## 
##  Get documentation at docs.liquibase.com       ##
##  Get certified courses at learn.liquibase.com  ## 
##                                                ##
####################################################
Starting Liquibase at 06:39:31 (version 4.25.1 #690 built at 2023-12-18 16:29+0000)
Liquibase Version: 4.25.1
Liquibase Open Source 4.25.1 by Liquibase
ERROR: Exception Details
ERROR: Exception Primary Class:  ChangeLogParseException
ERROR: Exception Primary Reason: The file /db/local/changelog-local-master.xml was not found in the configured search path:
    - /liquibase
    - /liquibase/changelog
    - /liquibase/classpath
    - /liquibase/internal/lib/liquibase-core.jar
    - /liquibase/lib
    - /liquibase/internal/lib/mariadb-java-client.jar
    - /liquibase/internal/lib/jaybird.jar
    - /liquibase/internal/lib/snowflake-jdbc.jar
    - /liquibase/internal/lib/jcc.jar
    - /liquibase/internal/lib/h2.jar
    - /liquibase/internal/lib/commons-text.jar
    - /liquibase/internal/lib/jaxb-runtime.jar
    - /liquibase/internal/lib/liquibase-commercial.jar
    - /liquibase/internal/lib/ojdbc8.jar
    - /liquibase/internal/lib/jaxb-api.jar
    - /liquibase/internal/lib/picocli.jar
    - /liquibase/internal/lib/hsqldb.jar
    - /liquibase/internal/lib/sqlite-jdbc.jar
    - /liquibase/internal/lib/commons-collections4.jar
    - /liquibase/internal/lib/commons-lang3.jar
    - /liquibase/internal/lib/mssql-jdbc.jar
    - /liquibase/internal/lib/opencsv.jar
    - /liquibase/internal/lib/postgresql.jar
    - /liquibase/internal/lib/snakeyaml.jar
    - /liquibase/internal/lib/jaxb-core.jar
    - /liquibase/internal/lib
More locations can be added with the 'searchPath' parameter.
ERROR: Exception Primary Source: 4.25.1

Unexpected error running Liquibase: The file /db/local/changelog-local-master.xml was not found in the configured search path:
    - /liquibase
    - /liquibase/changelog
    - /liquibase/classpath
    - /liquibase/internal/lib/liquibase-core.jar
    - /liquibase/lib
    - /liquibase/internal/lib/mariadb-java-client.jar
    - /liquibase/internal/lib/jaybird.jar
    - /liquibase/internal/lib/snowflake-jdbc.jar
    - /liquibase/internal/lib/jcc.jar
    - /liquibase/internal/lib/h2.jar
    - /liquibase/internal/lib/commons-text.jar
    - /liquibase/internal/lib/jaxb-runtime.jar
    - /liquibase/internal/lib/liquibase-commercial.jar
    - /liquibase/internal/lib/ojdbc8.jar
    - /liquibase/internal/lib/jaxb-api.jar
    - /liquibase/internal/lib/picocli.jar
    - /liquibase/internal/lib/hsqldb.jar
    - /liquibase/internal/lib/sqlite-jdbc.jar
    - /liquibase/internal/lib/commons-collections4.jar
    - /liquibase/internal/lib/commons-lang3.jar
    - /liquibase/internal/lib/mssql-jdbc.jar
    - /liquibase/internal/lib/opencsv.jar
    - /liquibase/internal/lib/postgresql.jar
    - /liquibase/internal/lib/snakeyaml.jar
    - /liquibase/internal/lib/jaxb-core.jar
    - /liquibase/internal/lib
More locations can be added with the 'searchPath' parameter.

这是我本地操作系统(Ubuntu)上的一个文件:

/home/richardmarais/Development/IdeaProjects/travellinck-javaee/corporateInterface/src/main/resources/db/local/changelog-local-master.xml
docker liquibase
1个回答
0
投票

文档有点不确定,但它和你得到的输出似乎表明除了文件名之外还需要搜索路径https://docs.liquibase.com/parameters/search-path.html参数.

似乎它现在正在尝试从默认搜索路径搜索名为

/db/local/changelog-local-master.xml
的文件,而不是直接使用
/db/local/changelog-local-master.xml
文件路径。

如果您已验证该文件确实存在于该位置,请尝试使用

--search-path /db/local/
将路径添加到搜索路径,并将
--changelog-file
更改为
changelog-local-master.xml

© www.soinside.com 2019 - 2024. All rights reserved.