前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 docker-compose 打包多个应用

使用 docker-compose 打包多个应用

作者头像
付威
发布2021-01-28 12:07:44
1.7K0
发布2021-01-28 12:07:44
举报
文章被收录于专栏:老付的网络博客

准备工作

这次部署两个项目,一个是 web 站点项目,一个是爬虫的后台应用项目。

  1. 两个项目的 jar 包,分别为 app.jar,spider.jar
  2. 两个应用都依赖 redis 和 mysql
  3. mysql 初始化需要的 sql 文件

docker file 文件

docker file 是 使用 docker 部署应用的命令。 具体的命令可以参考 Docker 命令.

由于是两个文件,所以需要两个不同的 Dockerfile .具体的 build 的内容如下:

Dockerfile web 的 build 文件

代码语言:javascript
复制
FROM java:8
MAINTAINER fuwei<laofu_online@163.com>

COPY oncesearch-portal-1.0-SNAPSHOT.jar /app.jar

CMD ["--server.port=80"]
EXPOSE 80

ENTRYPOINT ["java","-jar","/app.jar"]

爬虫的文件

代码语言:javascript
复制
FROM java:8
MAINTAINER fuwei<laofu_online@163.com>

COPY oncesearch-spider-1.0.0.jar /spider.jar


ENTRYPOINT ["java","-jar","/spider.jar"]

Compose 文件

代码语言:javascript
复制
version: "3.0"
services:
  portal:
    build:
      dockerfile: Dockerfile
      context: .
    image: portal
    depends_on:
      - redis
      - mysql
    ports:
      - 80:80
  spider:
    build:
      dockerfile: DockerfileSpider
      context: .
    image: spider
    depends_on:
      - redis
      - mysql
  redis:
    image: "library/redis:alpine" # 版本
  mysql:
    image: "mysql:latest"
    environment:
      MYSQL_ROOT_PASSWORD: "Abc12345++++"
      MYSQL_USER: 'root'
      MYSQL_PASS: "Abc12345++++"
    volumes:  # 挂载目录
      - "./db:/var/lib/mysql"
      - "./conf/my.cnf:/etc/my.cnf"
      - "./init:/docker-entrypoint-initdb.d/" # 初始化的 sql 
\    ports:  # 对内和对外的端口
      - "3307:3306"

最终文件的目录:

代码语言:javascript
复制
.
├── Dockerfile
├── DockerfileSpider
├── docker-compose.yml
├── init
│   └── ITBlog.sql
├── oncesearch-portal-1.0-SNAPSHOT.jar
└── oncesearch-spider-1.0.0.jar
如何访问 DB 和 Redis.

由于 docker compose 会自动创建一个虚拟的内网环境,所以在访问 MySQL 和 Redis 只需要使用镜像的名称即可解析到对应的域名。

代码语言:javascript
复制
# DB 连接字符串,直接使用镜像的名称即可
url: jdbc:mysql://mysql:3306/ITBlog?serverTimezone=UTC

最后直接执行 docker-compose执行打包部署。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-172,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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