【发布时间】:2017-01-28 15:40:28
【问题描述】:
以下是我的 docker-compose.yml 文件的内容:
eureka-server:
image: controlsplm/eureka-server
environment:
HOST_IP: X.X.X.X
ACTIVE_PROFILE=docker-development-cloud
ports:
- "8761:8761"
restart: always
以下是我的 docker 文件的内容:
FROM java:8
VOLUME /tmp
ADD eureka-server-0.1.0-SNAPSHOT.jar app.jar
EXPOSE 8761
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Denvironment=$HOST_IP","-Dspring.profiles.active=$ACTIVE_PROFILE","-jar","/app.jar"]
但是当我使用 compose 运行 docker 容器时,会获取 HOST_IP 但不会获取 ACTIVE_PROFILE。我在这里想念什么吗?请帮忙...
【问题讨论】:
-
您确定撰写文件与您机器上的文件匹配吗?环境部分看起来很乱。请在此处发布时检查是否有一些拼写错误。否则我会假设您在运行 compose 时会看到一些错误。
-
@Andreas,我没有看到错误,但是当启动启动应用程序启动时,它告诉活动配置文件是 ${ACTIVE_PROFILE},但它没有值“docker_development_cloud”..我是新手,可以请您指导一下这里出了什么问题:)
-
我认为你混合了数组和字典符号来传递变量。见这里:docs.docker.com/compose/compose-file/#/environment。因此,要么使用带等号 (
=) 的连字符 (-),要么使用不带连字符但使用冒号 (:) 的字典表示法。一个简单的调试方法是用打印所有环境变量的env覆盖命令。 -
eureka-server: image: controlsplm/eureka-server environment: - HOST_IP=13.68.114.134 - ACTIVE_PROFILE=docker-development-cloud ports: - "8761:8761" restart: always 上面两个变量未被应用程序提取
-
请扩展您的问题,而不是在此处的 cmets 中粘贴多行代码。查看我在上面发布的链接并尝试
docker-compose run eureka-server env以查看容器启动时哪些变量可用。
标签: spring-boot docker-compose dockerfile