Как часть единого файла docker-compose, мы запускаем spring-config-cloud-server и client.У клиента есть зависимость_ от контейнера сервера.Однако задержка между включенным контейнером сервера и запуском клиента и запросом его конфигурации слишком быстра, и у сервера еще не было возможности вытащить конфигурацию - у нас есть cloneOnStart: true
)
После сбоя клиента (сбой соединения с источником данных).Я могу вручную остановить Docker, и запустить Docker клиента, и все работает нормально.
Мы попытались добавить проверку работоспособности на сервер, но это не решило проблему.
spring:
security:
user:
name: config-user
password: myPassword
role: USER
application:
name: config-server
cloud:
config:
fail-fast: true
request-read-timeout: 10
server:
git:
uri: xxxxxx/config-store.git
searchPaths: '{application}/{profile}'
cloneOnStart: true
ignoreLocalSshSettings: true
strictHostKeyChecking: false
basedir: target/config
deleteUntrackedBranches: true
force-pull: true
refreshRate: 60
skipSslValidation: false
privateKey: |
docker-compose:
version: '3.7'
services:
config-server:
image: config-server:1.0.0
container_name: config-server
restart: always
ports:
- 8888:8888
environment:
- "TZ=UTC"
networks:
- services-network
volumes:
- ./config/config-server-prod.yml:/application.yml:ro
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:8888 || exit 1"]
interval: 10s
timeout: 10s
retries: 10
config-client:
image: config-client:1.2.1
container_name: config-client
ports:
- 8200:8200
environment:
- "TZ=UTC"
networks:
- services-network
links:
- "ap-config-svc"
command: "/bin/sleep 30"
volumes:
- ./config/config-client-application.yaml:/application.yaml:ro
- ./config/config-client-bootstrap.yaml:/bootstrap.yaml:ro
depends_on:
- config-server
networks:
services-network:
bootstrap.yaml:
spring:
application:
name: ap-eox-svc
cloud:
config:
uri: http://config-server:8888