将 war 包 打成docker镜像

随着docker等容器技术的成熟,使得dev-ops的开发理念得到落实。公司内部提供的容器都是封装好的,于是决定尝试自己在docker上部署第一个应用来练习练习,还是有不少坑的。前提是docker已经在本地安装了,具体安装步骤可以上官网查看。

1、拉取最新的tomcat镜像到本地

sudo docker pull tomcat:lastest
2、基于Dockerfile创建镜像文件
dockerfile可以帮助我们创建自定义的镜像,本文比较简单直接基于最新的tomcat镜像,当然tomcat镜像也可以自定义(tomcat版本、jdk版本)。
新建Dockerfile文件,并将需要部署的war包放在相同文件夹下

Dockerfile文件内容如下:

FROM tomcat:latest
MAINTAINER helixin "[email protected]"
WORKDIR /usr/local
RUN rm -rf /usr/local/tomcat/webapps/*
ADD tomcat-tutors-api.war /usr/local/tomcat/webapps/ROOT.war
#RUN yes|unzip /usr/local/tomcat/webapps/ROOT.war -d /usr/local/tomcat/webapps/ROOT/
#RUN chmod 777 -Rf /usr/local/tomcat/webapps/*
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
构建镜像文件:

sudo docker build -t hegaoye/tomcat .
请注意那个点 “.”

3、运行镜像

sudo docker run   -d -p 8080:8080 hegaoye/tomcat
容器启动正常,当然取决于你的war包是否是正常,
注意 :war中的127.0.0.1 或者localhost 应该替换成指定的ip或者用link进行链接,否则在容器内127.0.0.1 就是容器本身,将找不到具体的服务会报错。
接下来可以语CI系统融合,将测试好的代码做成war 再与docker 融合,交付到自己的容器仓库中做成版本号,需要时直接发布容器即可。是不是很方便O(∩_∩)O。


你可能感兴趣的:(devops)