docker 使用 Tomcat 部署 springMVC +Mysql 项目

【CompanyName】表示公司名称需要替换为你自己的公司,【ProjectName】标识项目名称需要替换为你自己的项目名称。

Mysql DockerFile

FROM mysql:5.7.31

COPY ./sql /tmp/sql
RUN mv /tmp/sql/*.sql /docker-entrypoint-initdb.d
RUN rm -rf /tmp/sql

Tomcat DockerFile

注意需要将相关的软件包与DockerFile放在一起,主要的依赖分别为

FROM centos:7.8.2003

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && yum -y install kde-l10n-Chinese \
    && yum -y reinstall glibc-common \
    && localedef -c -f GB18030 -i zh_CN zh_CN.GB18030 \
    && echo 'LANG="zh_CN.GB18030"' > /etc/locale.conf \
    && source /etc/locale.conf \
    && yum clean all 
ENV LANG=zh_CN.GB18030 \
    LC_ALL=zh_CN.GB18030

# 创建一个文件夹用于存放jdk
RUN mkdir /【CompanyName】
RUN mkdir /【CompanyName】/java

# 安装jdk 将jdk压缩包拷贝到镜像当中 会自动解压
ADD jdk-8u251-linux-x64.tar.gz /【CompanyName】/java

# 创建一个软链接 相当于给这个路径创建一个别名
RUN ln -s /【CompanyName】/java/jdk1.8.0_251 /【CompanyName】/java/jdk

# 创建jdk环境变量
ENV JAVA_HOME /【CompanyName】/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

# 安装tomcat
RUN mkdir /【CompanyName】/tomcat
ADD apache-tomcat-8.5.57.tar.gz /【CompanyName】/tomcat

# 部署【ProjectName】
# COPY 【ProjectName】.war /【CompanyName】/tomcat/apache-tomcat-8.5.57/webapps

# 初始化文件上传目录
RUN mkdir /usr/【ProjectName】
RUN mkdir /usr/【ProjectName】/file
RUN chmod a+rwx /usr/【ProjectName】/

# 映射文件地址
VOLUME [ "/usr/【ProjectName】/file/",  "/【CompanyName】/tomcat/apache-tomcat-8.5.57/webapps/"]

# 指定容器启动时执行的脚本
ENTRYPOINT [ "/【CompanyName】/tomcat/apache-tomcat-8.5.57/bin/catalina.sh", "run" ]

# EXPOSE 映射端口
EXPOSE 8080

根据DockerFile分别生成镜像

docker build -t="【ProjectName】-mysql" .
docker build -t="【ProjectName】-mis" .

将镜像导出为离线文件

docker save -o 【ProjectName】.mis.tar oams-mis
docker save -o 【ProjectName】.mysql.tar oams-mysql

部署材料

与该手册同时存在的还有以下文件:

  • 【ProjectName】.war
  • 【ProjectName】.mysql.tar
  • 【ProjectName】.mis.tar

部署步骤

  1. 创建/var/【ProjectName】目录(windows服务器 目录 为d:/【ProjectName】),该目录下创建,file、mysql、tomcat三个文件夹 tomcat 下创建 webapps 文件夹,将【ProjectName】.war war包放到webapps目录下

  2. 创建数据库容器

// 恢复数据库镜像
docker load --input 【ProjectName】.mysql.tar

// 查看镜像是否恢复
docker images
// 应该可以看到【ProjectName】-mysql镜像

// 创建数据库容器(linux)
docker run --restart=always -dit -v /var/【ProjectName】/mysql:/var/lib/mysql -p 33009:3306 --name 【ProjectName】.mysql -e MYSQL_ROOT_PASSWORD=【CompanyName】2020123#@! -d --privileged=true 【ProjectName】-mysql --lower_case_table_names=1 --character_set_server=utf8

// 创建数据库容器(winserver)
docker run --restart=always -dit -v d:/【ProjectName】/mysql:/var/lib/mysql -p 33009:3306 --name 【ProjectName】.mysql -e MYSQL_ROOT_PASSWORD=【CompanyName】2020123#@! -d --privileged=true 【ProjectName】-mysql --lower_case_table_names=1 --character_set_server=utf8
  1. 创建应用系统容器
// 恢复应用镜像
docker load --input 【ProjectName】.mis.tar

// 查看镜像是否恢复
docker images
// 应该可以看到【ProjectName】-mis镜像

// 创建数据库容器(linux)
docker run -it --privileged=true -v /var/【ProjectName】/tomcat/webapps:/【CompanyName】/tomcat/apache-tomcat-8.5.57/webapps -p 8080:8080 --name 【ProjectName】.mis --link 【ProjectName】.mysql:db -d 【ProjectName】-mis /bin/bash

// 创建数据库容器(winserver)
docker run --restart=always -dit -v d:/【ProjectName】/mysql:/var/lib/mysql -p 33009:3306 --name 【ProjectName】.mysql -e MYSQL_ROOT_PASSWORD=【CompanyName】2020123#@! -d --privileged=true 【ProjectName】-mysql --lower_case_table_names=1 --character_set_server=utf8
  1. 部署结果
// 查看容器运行状况
docker ps -a

// 查看结果
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
efc9877784c7        【ProjectName】-mysql          "docker-entrypoint.s…"   44 seconds ago      Up 42 seconds       33060/tcp, 0.0.0.0:33009->3306/tcp   【ProjectName】.mysql
08c43d9a1b04        【ProjectName】-mis            "/【CompanyName】/tomcat/apach…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp             【ProjectName】.mis

打开http://localhost:8080/【ProjectName】/地址查看

最后安利下自己的小程序,一款程序员刷题小程序。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值