公司的一个java项目,然后这是组长给的一个任务,部署到docker中。 部署更不用说啦,肯定要写Dockerfile,不多想,先下载我需要的环境包。
下载好后,可以不解压,直接到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