Как развернуть сервер spring-cloud-config в docker-compose? - PullRequest
0 голосов
/ 17 июня 2019

У меня проблема с моим docker-compose.Я пытаюсь создать несколько контейнеров с одним spring-cloud-config-server, и я пытаюсь использовать spring-cloud server с моим контейнером webapps.

Это список моих контейнеров:

  • 1 для BDD (дБ)
  • 1 для весеннего облачного сервера конфигурации (configproperties)
  • 1 для некоторых веб-приложений (webapps)
  • 1 nginx для обратного проксирования (cnginx)

Я уже пытаюсь использовать localhost, мое имя сервера конфигурации в качестве хоста в переменной среды: SPRING_CLOUD_CONFIG_URI ив boostrap.properties.Мой контейнер 'configproperties', используйте 8085 в файле server.xml.

Это мой docker-compose.yml

version: '3'
services:
  cnginx:
    image: cnginx
    ports:
      - 80:80
    restart: always
    depends_on:
      - configproperties
      - cprocess
      - webapps
  db:
    image: postgres:9.3
    environment:
      POSTGRES_USER: xxx
      POSTGRES_PASSWORD: xxx
    restart: always
    command:
      - -c
      - max_prepared_transactions=100
  configproperties:
    restart: on-failure:2
    image: configproperties
    depends_on:
      - db
    expose:
      - "8085"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/mydbName?currentSchema=public
  webapps:
    restart: on-failure:2
    image: webapps
    links:
      - "configproperties"
    environment:
      - SPRING_CLOUD_CONFIG_URI=http://configproperties:8085/config-server
      - SPRING_PROFILES_ACTIVE=docker
    depends_on:
      - configproperties
    expose:
      - "8085"

Когда я запускаю docker-compose, мои веб-приложения разворачиваются с использованием sommeошибка типа:
- Не удалось разрешить заполнитель 'repository.temps' в значении "$ {repository.temps}"

Но когда я использую почтальон и отправляю запрос следующим образом:
http://localhost/config-server/myApplication/docker/latest Работает нормально, запрос возвращает все настройки для myApplication.

Я думаю, что что-то пропустил, но не могу его найти ...

Любой можетпомогите мне?

С уважением,

1 Ответ

1 голос
/ 18 июля 2019

Для использования сервера Springcloud нам просто нужно запустить наши веб-приложения после инициализации сервера Springcloud.

J'ai donc fait quelque выбрал стиль de se:

#!/bin/bash

CONFIG_SERVER_URL=$SPRING_CLOUD_CONFIG_URI/myApp/production/latest

#Check si le le serveur de config est bien lancé
echo 'Waiting for tomcat to be available'
attempt_counter=0
max_attempts=10
while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' $CONFIG_SERVER_URL)" != "200" ]]; do
    if [ ${attempt_counter} -eq ${max_attempts} ];then
        echo "Max attempts reached on $CONFIG_SERVER_URL"
        exit 1
    fi
    attempt_counter=$(($attempt_counter+1))
    echo "code retour $(curl -s -o /dev/null -w ''%{http_code}'' $CONFIG_SERVER_URL)"
    echo "Attempt to connect to $CONFIG_SERVER_URL : $attempt_counter/$max_attempts"
    sleep 15
done
echo 'Tomcat is available'
mv /usr/local/tomcat/webappsTmp/* /usr/local/tomcat/webapps/
...