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

注意使用启动命令的前提是 Dockerfiledocker-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
posted @ 2021-07-23 16:29  jiawei3998  阅读(273)  评论(0编辑  收藏  举报