前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker-compose 外部配置部署 java 项目

docker-compose 外部配置部署 java 项目

原创
作者头像
子润先生
修改2021-06-11 14:21:29
1.8K0
修改2021-06-11 14:21:29
举报
文章被收录于专栏:用户8644135的专栏

有的项目写完,需要打包到不同的环境。所以配置一个外部 yml 配置文件会方便很多,不用重新打包。

文件目录构造

代码语言:javascript
复制
├──app├──application.yml
      ├──app.jar 
      ├──Dockerfile
├──mysql
├──nginx
docker-compose.yml
w.sh

Dockerfile

代码语言:javascript
复制
FROM java:8
#VOLUME /tmp
ADD dstapp.jar app.jar
ADD application.yml /application.yml
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dspring.config.location=/application.yml", "-jar", "/app.jar"]

注意,以上顺序不可改变。-Dspring.config.location 别搞错了,不是 --spring.config.location

docker-compose.yml

代码语言:javascript
复制
version : '2'
services:

  redis:
    image: redis:3
    command: redis-server --requirepass 1234
    ports:
      - "6379"
  nginx:
    build: nginx
    image: jo/nginx
    ports:
      - "9527:9527"
    volumes:
      - ./nginx/dist/:/etc/nginx/html/
    links:
      - dstapp

  mysql:
    build: mysql
    image: jo/mysql
    volumes:
       - ./src/main/docker/mysql/my.cnf:/root/mysql/my.cnf mysql
    command: --max_allowed_packet=32505856
    environment:
       - MYSQL_ROOT_PASSWORD=123456
    ports:
       - "3306"
    expose:
       - "3306"

  dstapp:
    build: dstapp
    image: jo/dstapp
    volumes:
      - ./w.sh:/w.sh
    ports:
      - "8080"
    restart: always
    depends_on:
      - mysql
    links:
      - mysql
      - redis
    entrypoint: "./w.sh mysql:3306 -- java -Dspring.config.location=/application.yml -jar /app.jar"

注意:这里的 -Dspring.config.location 也是需要注意位置。

最后

docker-compose up -d

就可以跑起来了,总结一下,注意一下 -Dspring.config.location 前面只有一个横,还有注意代码位置即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件目录构造
  • Dockerfile
  • docker-compose.yml
  • 最后
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档