IDEA 以 war 包形式部署 Docker 中 - Dockerfile 文件
1. 环境准备
前提准备:
https://blog.csdn.net/YKenan/article/details/111446036
war 包依赖于 tomcat
# 镜像名称
FROM centos8_1.8
# 作者
MAINTAINER ykenan
# 运行命令
RUN mkdir /home/tomcat/
# 复制
COPY apache-tomcat-9.0.12.tar.gz /home/tomcat/
# 切换工作路径
WORKDIR /home/tomcat/
# 解压
RUN tar -zxvf apache-tomcat-9.0.12.tar.gz
# 删除
RUN rm apache-tomcat-9.0.12.tar.gz
# 定义变量
ENV DIR_TOMCAT /home/tomcat/apache-tomcat-9.0.12/
# 删除文件夹
RUN rm -rf $DIR_TOMCAT/webapps/*
# 切换工作路径
WORKDIR $DIR_TOMCAT
# 暴露端口
EXPOSE 8080
# 启动 tomcat
CMD ["./bin/catalina.sh", "run"]
运行上面的 Dockerfile 文件
docker build -t tomcat_1.8 .
2. IDEA 中配置 Docker
Dockerfile 文件的内容
# 基于 tomcat
FROM tomcat_1.8
# 作者
MAINTAINER ykenan
# 定义变量
ENV DIR_WEBAPP /home/tomcat/apache-tomcat-9.0.12/webapps/
# 切换工作路径
WORKDIR $DIR_WEBAPP
# 添加本地的 war 包到远程容器中
ADD ./target/ykenan-1.0.war ykenan.war
# 安装 unzip
RUN yum install -y unzip zip
# 解压 war 包到 ROOT 目录
RUN unzip ykenan.war -d ykenan
# 暴露接口
EXPOSE 8080
# 启动 Tomcat
CMD ["../bin/catalina.sh","run"]
运行即可了. 这个方法比较简单, jar 也可以这样. 用不上私有仓库.
如果镜像出现了 none 的现象, 就是 Dockerfile 文件写错了.
3. Jar 包形式的 Dockerfile
# 基础镜像使用java
FROM centos
# 作者
MAINTAINER YKenan
# 安装 JDK
RUN yum install -y java-1.8.0-openjdk-devel.x86_64
# 将 jar 包添加到容器中并更名为 app.jar
ADD ./target/ykenan-1.0.jar ykenan.jar
# 运行jar包
# touch 命令, 如果没有文件创建则创建文件, 如果文件已存在, 则修改时间戳
RUN bash -c 'touch /ykenan.jar'
ENTRYPOINT ["java","-jar","/ykenan.jar"]