这次部署两个项目,一个是 web 站点项目,一个是爬虫的后台应用项目。
docker file 是 使用 docker 部署应用的命令。 具体的命令可以参考 Docker 命令.
由于是两个文件,所以需要两个不同的 Dockerfile
.具体的 build 的内容如下:
Dockerfile web 的 build 文件
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"]
爬虫的文件
FROM java:8
MAINTAINER fuwei<laofu_online@163.com>
COPY oncesearch-spider-1.0.0.jar /spider.jar
ENTRYPOINT ["java","-jar","/spider.jar"]
Compose 文件
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"
最终文件的目录:
.
├── Dockerfile
├── DockerfileSpider
├── docker-compose.yml
├── init
│ └── ITBlog.sql
├── oncesearch-portal-1.0-SNAPSHOT.jar
└── oncesearch-spider-1.0.0.jar
由于 docker compose 会自动创建一个虚拟的内网环境,所以在访问 MySQL 和 Redis 只需要使用镜像的名称即可解析到对应的域名。
# DB 连接字符串,直接使用镜像的名称即可
url: jdbc:mysql://mysql:3306/ITBlog?serverTimezone=UTC
最后直接执行 docker-compose
执行打包部署。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有