SpringBoot Web项目的Dockerfile和docker-compose.yml部署文件
构建Java镜像的 Dockerfile
文件名称:Dockerfile
Linux 查看时间命令:date
、时区命令:date -R
# 根据项目运行原件选择不同的jdk版
# jdk1.8
FROM openjdk:8u265-jdk-slim
# FROM openjdk:8u265-jdk
# jdk11
# FROM openjdk:11.0.8-jdk
# 设置容器时区
ENV TZ=Asia/Shanghai
# 修改系统时区,默认是GMT,会慢8小时
# RUN echo "Asia/shanghai" > /etc/timezone;
# RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置工作目录
WORKDIR /var/www
# 设置端口
EXPOSE 8080
# 拷贝程序
COPY *.jar /var/www/app.jar
# 运行
ENTRYPOINT ["java","-jar","app.jar", "--server.port=8080", "--spring.profiles.active=prod"]
docker-compose.yml
参考链接:https://docs.docker.com/compose/compose-file/compose-file-v3/
docker-compose 命令:https://blog.csdn.net/weixin_44953227/article/details/116902134
注意使用启动命令的前提是
Dockerfile
和docker-compose.yml
以及项目jar包
这三个文件都在当前路径上(三个文件都在同一个目录)
类似这样
[root@VM-06-16-centos-8-64 my-blog-site]# pwd
/home/root/www/my-blog-site
[root@VM-06-16-centos-8-64 my-blog-site]# ls
app.jar docker-compose.yml Dockerfile
[root@VM-06-16-centos-8-64 my-blog-site]#
文件名称:docker-compose.yml
-d
:后台运行--build
:重新构建镜像
启动命令:docker-compose up -d --build
停止命令:docker-compose down
# 更多参考: https://docs.docker.com/compose/compose-file/compose-file-v3/
# 路径说明 . 或者 ./ 代表相对当前路径; / 代表绝对路径
version: "3"
services:
webapp:
build:
# 构建镜像的文件路径, . 当前目录
context: .
# 构建镜像的文件名称
dockerfile: Dockerfile
# 如果不自己构建镜像(build) 也可以指定镜像名称或者本地的镜像id, 如果镜像不存在它会去远程拉取, 比如: mysql:5.7、9bd7d8705a46
# 如果你指定了 build 的同时又指定了 image, 那么 image 的作用就会变成 镜像名称
image: my-blog-site
# 生成容器名称
container_name: my-blog-site
# 工作目录
working_dir: /var/www
# 是否自动重启
restart: always
# 暴露端口
ports:
- "8080:8080"
# 双向绑定: 宿主机和容器的文件或者文件夹
volumes:
- ./app.jar:/var/www/app.jar
- ./logs:/var/www/logs
- ./upload:/var/www/upload
# 设置环境变量
#environment:
# - TZ=Asia/Shanghai
# 会先启动 redis 容器再启动自身容器
#depends_on:
# - redis
# 执行命令
#command: java -jar app.jar --server.port=8080 --spring.profiles.active=prod
MySQL启动脚本
MySQL 容器默认的配置文件位置:/etc/mysql/my.cnf
参考链接:https://hub.docker.com/_/mysql
docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mysql:5.7
自定义配置文件版
docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql -v /home/root/mysql/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7
脚本启动
1、生成脚本
echo "docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mysql:5.7" > docker-mysql-up.sh
2、执行脚本
bash docker-mysql-up.sh