如何在docker-compose中部署spring-cloud-config服务器?

时间:2019-06-17 15:40:32

标签: docker docker-compose spring-cloud-config

我的docker-compose有问题。我正在尝试使用一个spring-cloud-config-server创建多个容器,而我试图在我的webapps容器中使用spring-cloud服务器。

这是我的容器的列表:

  • 1用于BDD(db)
  • 1个用于Spring Cloud配置服务器(configproperties)
  • 对于某些网络应用程序(网络应用程序)为1
  • 1个用于反向代理的nginx(cnginx)

我已经尝试在环境变量SPRING_CLOUD_CONFIG_URI和boostrap.properties中将localhost(我的配置服务器名称)用作主机。 我的“ configproperties”容器在server.xml中使用8085。

那是我的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时,我的Web应用程序部署时出现严重错误,例如:
-无法解析值为“ $ {repository.temps}”的占位符'repository.temps'

但是当我使用邮递员并发送这样的请求时:
 http://localhost/config-server/myApplication/docker/latest 运行正常,请求返回“ myApplication”的所有配置。

我想我有点想念,但我找不到...

有人可以帮助我吗?

此致

1 个答案:

答案 0 :(得分:1)

对于使用springcloud服务器,我们只需要在springcloud服务器初始化之后运行我们的web应用。

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/