如何在 docker-compose 中部署 spring-cloud-config 服务器?
How to deploy spring-cloud-config server in docker-compose?
我的 docker-compose 有问题。我正在尝试使用一个 spring-cloud-config-server 创建多个容器,并且我正在尝试将 spring-cloud 服务器与我的 webapps 容器一起使用。
这是我的容器列表:
- 1 个用于 BDD (db)
- 1 用于 spring 云配置服务器 (configproperties)
- 1 用于某些网络应用程序 (webapps)
- 1 个用于反向代理的 nginx (cnginx)
我已经尝试使用 localhost,我的配置服务器名称作为环境变量中的主机:SPRING_CLOUD_CONFIG_URI 和 boostrap.properties。
我的'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 时,我的 webapps 正在部署时出现一些错误,例如:
- 无法解析值“${repository.temps}”
中的占位符 'repository.temps'
但是当我使用邮递员发送这样的请求时:
http://localhost/config-server/myApplication/docker/latest
它工作正常,请求 return 所有配置为 'myApplication'。
我想我错过了一些想法,但我没有找到...
谁能帮帮我?
此致,
使用spring cloud服务器,我们只需要在spring cloud服务器初始化后运行我们的webapps。
#!/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/
我的 docker-compose 有问题。我正在尝试使用一个 spring-cloud-config-server 创建多个容器,并且我正在尝试将 spring-cloud 服务器与我的 webapps 容器一起使用。
这是我的容器列表:
- 1 个用于 BDD (db)
- 1 用于 spring 云配置服务器 (configproperties)
- 1 用于某些网络应用程序 (webapps)
- 1 个用于反向代理的 nginx (cnginx)
我已经尝试使用 localhost,我的配置服务器名称作为环境变量中的主机:SPRING_CLOUD_CONFIG_URI 和 boostrap.properties。 我的'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 时,我的 webapps 正在部署时出现一些错误,例如:
- 无法解析值“${repository.temps}”
但是当我使用邮递员发送这样的请求时:
http://localhost/config-server/myApplication/docker/latest
它工作正常,请求 return 所有配置为 'myApplication'。
我想我错过了一些想法,但我没有找到...
谁能帮帮我?
此致,
使用spring cloud服务器,我们只需要在spring cloud服务器初始化后运行我们的webapps。
#!/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/