The Seven Year Itch.

MENU

Docker部署java项目[tomcat环境][第一次优化]

October 31, 2017 • Read: 577 • GitHub,MAC,工具,环境,Docker


公司的一个java项目,然后这是组长给的一个任务,部署到docker中。
部署更不用说啦,肯定要写Dockerfile,不多想,先下载我需要的环境包。

  1. JDK JDK下载地址
  2. tomcat tomcat下载地址
  3. maven maven下载地址

下载好后,可以不解压,直接到docker中解压,但是我习惯先解压,然后直接复制目录到docker中

目录就这些,一个项目,一个Apache tomcat 一个 Apache maven 一个 jdk,因为镜像都不是国内的,所以引入一个镜像后,里面的安装源都是国外的,所以写了一个run.sh的脚本,用来替换掉镜像的安装源,Dockerfile就是我们的猪脚啦。代码在下面:

安装的包


Dockerfile代码:

# 引入基础镜像
FROM ubuntu:16.04
# 运行shell脚本,更换安装源
COPY run.sh /
RUN apt-get install bash -y
RUN /bin/sh run.sh

# 安装必要软件
RUN apt-get update && apt-get install vim -y

# 安装jdk
RUN mkdir /home/java
ADD jdk1.8.0_151/ /home/java/jdk1.8.0_151

# 安装maven
RUN mkdir /var/tmp/maven
ADD apache-maven-3.5.2/ /var/tmp/maven

# 安装tomcat
RUN mkdir /usr/local/tomcat
ADD apache-tomcat-8.5.23/ /usr/local/tomcat

# 配置环境变量
ENV MAVEN_HOME=/var/tmp/maven
ENV PATH=${PATH}:${MAVEN_HOME}/bin
ENV JAVA_HOME=/home/java/jdk1.8.0_151
ENV JRE_HOME=/home/java/jdk1.8.0_151/jre
ENV PATH=$JAVA_HOME/bin/:$JAVA_HOME=/jre/bin:$PATH:$HOME/bin
# 创建日志文件
RUN touch /usr/local/tomcat/bin/run.log

# 部署项目环境
ADD freshstart-iec104/server.xml /usr/local/tomcat/conf/
ADD freshstart-iec104 /usr/local/tomcat/webapps/freshstart-iec104
WORKDIR /usr/local/tomcat/webapps/freshstart-iec104/
RUN mvn clean package
RUN cd  /usr/local/tomcat/webapps/freshstart-iec104/target/ && mv freshstart-iec104.war /usr/local/tomcat/webapps/
WORKDIR /usr/local/tomcat/webapps/
RUN rm -rf freshstart-iec104/
CMD /usr/local/tomcat/bin/catalina.sh run

run.sh的代码:

#/bin/bash
cat <<EOF > /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
EOF

->运行命令 docker build tomcat .
然后等他自己跑完吧,跑完还是需要一些时间的。
我把项目贴到github了
github下载地址
如果你要测试,你需要把你的java项目加进去,并且在Dockerfile里改成你的项目名称哦。

运行结果

运行完成

Tags: Docker
Archives QR Code
QR Code for this page
Tipping QR Code