如何在docker-compose.yml里指定Spring boot应用镜像的配置文件挂载路径

weixin_40128275 2017-11-28 02:06:57
本人用Spring boot开发了一个简单web应用。用docker-compose指定编译。编译成功。但是如何能通过docker-compose.yml里的配置,指定在容器里的应用的配置文件,在镜像外配置呢?例如 application.properties文件,在镜像外,如何通过dokcer-compose.yml里指定(volumes)在镜像外挂载路径呢?我在下面docker-compse.yml的设置不好使

docker-compse.yml
version: '3'

services:
elasticsearch:
build: elasticsearch
ports:
- 9200:9200
expose:
- 9300
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
networks:
- "internal"
volumes:
- esdata:/usr/share/elasticsearch/data
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ulimits:
nofile:
soft: 65536
hard: 65536

kibana:
image: docker.elastic.co/kibana/kibana:5.6.4
networks:
- "internal"
ports:
- 5601:5601
elasticsearch-head:
image: mobz/elasticsearch-head:5
networks:
- "internal"
ports:
- 9100:9100
app:
build: helloWorld
ports:
- 9090:9090
expose:
- 9090
networks:
- "internal"
volumes:
- ./helloWorld/config/hello.yml:/app/hello.yml
(不好使)

volumes:
esdata:
driver: local

networks:
internal:
driver: "bridge"

------------------------------------------------------------------------
DockerFile

FROM java:8
VOLUME /tmp
RUN mkdir /app
ADD HelloWorld-0.0.1-SNAPSHOT.jar /app/app.jar
ADD runboot.sh /app/
RUN bash -c 'touch /app/app.jar'
WORKDIR /app
RUN chmod a+x runboot.sh
EXPOSE 9090
CMD /app/runboot.sh

--------------------------------------------------------------------------------
runboot.sh

sleep 10
java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar
...全文
1763 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主解决了吗
内容概要:本文档《docker实战.docx》详细介绍了Docker部署实战项目的全流程,涵盖Docker基础概念、实战项目案例、部署最佳实践、性能优化建议、安全性考虑以及监控和日志管理等方面。基础概念部分解释了Docker的核心组件如镜像、容器、Dockerfile、仓库和Docker Compose。实战项目案例包括Node.js Express API项目、Python Flask Web应用、Java Spring Boot应用、React前端项目和全栈应用(前后端分离),以及微服务架构案例。每个案例都提供了详细的项目结构、源码示例、Dockerfile和docker-compose.yml配置,并附带部署脚本。此外,文档还介绍了多阶段构建、选择合适的基础镜像、合并RUN指令、使用.dockerignore、非root用户运行等Dockerfile优化技巧,以及Docker Compose的最佳实践,如资源限制、环境变量配置、卷挂载、网络设置等。性能优化建议部分强调了多阶段构建和使用Alpine Linux等轻量级镜像来减少镜像大小。 适合人群:具备一定编程基础,对容器化技术感兴趣的开发者,特别是工作1-3年的研发人员。 使用场景及目标:①掌握Docker的基本概念和核心组件;②通过实际项目案例了解如何将不同类型的Web应用和服务部署到Docker容器中;③学习Docker镜像和容器的优化技巧,提高部署效率和安全性;④理解微服务架构下的Docker部署实践,包括服务发现、负载均衡等。 阅读建议:此资源不仅提供了详细的代码实现,还涵盖了从需求分析到方案设计的全过程,因此在学习过程中应结合理论与实践,逐步调试和理解各个配置文件的作用,特别关注多阶段构建、环境变量配置和健康检查等关键环节。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧