Spring Cloud Config не готов, требуется задержка создания докера - PullRequest
0 голосов
/ 30 мая 2019

Как часть единого файла 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
...