spring-云配置在本地运行正常,但在 docker 上显示无法克隆或检出存储库
spring-cloud config runs ok locally but on docker it shows Cannot clone or checkout repository
我 运行正在 Spring 本地云配置服务器正常,但我想为项目尝试 docker。并且相同的代码在 docker !
上出现了一些错误
因为配置服务器将从 git 中提取配置,当我们在 docker
我发现日志说:
Cannot clone or checkout repository] with root cause
org.eclipse.jgit.errors.CheckoutConflictException: Checkout conflict with files:
我尝试删除所有图像并清除 docker 缓存并重建并重新 运行 它,最后显示相同的错误
spring:
application:
name: ace-config
profiles:
active: dev
cloud:
config:
server:
git:
uri: https://gitlab.com/xxx/myproj.git
searchPaths: config
username: xxx
password: xxx
default-label: develop
这是我的docker文件
FROM livingobjects/jre8
VOLUME /tmp
ADD ./target/ace-config.jar app.jar
RUN rm -rf /tmp/*
RUN bash -c 'touch /app.jar'
这是我的 docker-compose.yml
ace-config:
build: ./ace-config
image: mipay/ace-config:latest
restart: always
depends_on:
- ace-center
command: >
bash -c "
while ! (nc -z unipay 8761);
do sleep 5;
echo 'Waiting for config and center services to start-up...';
done;
java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
"
ports:
- "8750:8750"
extra_hosts:
- "unipay2:172.31.68.159"
- "unipay:172.31.68.159"
- "mipay:172.31.68.159"
volumes:
- /opt/logs/:/opt/logs
您可能遇到过这个问题:
https://github.com/spring-cloud/spring-cloud-config/issues/407
但实际上,Spring 云配置服务器承认配置服务器中的本地副本可能变脏
(for example, folder content changes by an OS process)
为此,可以将 force-pull
属性 设置为 true 为 documented here。
此外,由于系统临时目录(例如 /tmp/)可以被 OS 进程修改,您可以使用 spring.cloud.config.server.git.basedir
指定要放置检出存储库的确切位置,因为 documented here.
你能试试看这些是否有帮助吗?
我 运行正在 Spring 本地云配置服务器正常,但我想为项目尝试 docker。并且相同的代码在 docker !
上出现了一些错误因为配置服务器将从 git 中提取配置,当我们在 docker 我发现日志说:
Cannot clone or checkout repository] with root cause org.eclipse.jgit.errors.CheckoutConflictException: Checkout conflict with files:
我尝试删除所有图像并清除 docker 缓存并重建并重新 运行 它,最后显示相同的错误
spring:
application:
name: ace-config
profiles:
active: dev
cloud:
config:
server:
git:
uri: https://gitlab.com/xxx/myproj.git
searchPaths: config
username: xxx
password: xxx
default-label: develop
这是我的docker文件
FROM livingobjects/jre8
VOLUME /tmp
ADD ./target/ace-config.jar app.jar
RUN rm -rf /tmp/*
RUN bash -c 'touch /app.jar'
这是我的 docker-compose.yml
ace-config:
build: ./ace-config
image: mipay/ace-config:latest
restart: always
depends_on:
- ace-center
command: >
bash -c "
while ! (nc -z unipay 8761);
do sleep 5;
echo 'Waiting for config and center services to start-up...';
done;
java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
"
ports:
- "8750:8750"
extra_hosts:
- "unipay2:172.31.68.159"
- "unipay:172.31.68.159"
- "mipay:172.31.68.159"
volumes:
- /opt/logs/:/opt/logs
您可能遇到过这个问题:
https://github.com/spring-cloud/spring-cloud-config/issues/407
但实际上,Spring 云配置服务器承认配置服务器中的本地副本可能变脏
(for example, folder content changes by an OS process)
为此,可以将 force-pull
属性 设置为 true 为 documented here。
此外,由于系统临时目录(例如 /tmp/)可以被 OS 进程修改,您可以使用 spring.cloud.config.server.git.basedir
指定要放置检出存储库的确切位置,因为 documented here.
你能试试看这些是否有帮助吗?