我的docker-compose有问题。我正在尝试使用一个spring-cloud-config-server创建多个容器,而我试图在我的webapps容器中使用spring-cloud服务器。
这是我的容器的列表:
我已经尝试在环境变量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”的所有配置。
我想我有点想念,但我找不到...
有人可以帮助我吗?
此致
答案 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/