前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker部署java项目[tomcat环境][第一次优化]

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

作者头像
简单、
发布2018-07-17 17:47:05
2.1K0
发布2018-07-17 17:47:05
举报

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

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

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

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

安装的包
安装的包

Dockerfile代码:

代码语言:javascript
复制
# 引入基础镜像
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的代码:

代码语言:javascript
复制
#/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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档