Docker学习记录(2)——JAVA应用容器化(JAVA博客应用Solo)

以GitHub上一个开源JAVA博客应用为例,地址为:https://github.com/b3log/solo。它的项目结构是基于Maven的要求布置的,通过Maven可以编译和构建WAR包。

执行容器化的环境为CentOS7.2。

  • 安装源代码工具Git与构建工具Maven。
# yum -y install git maven
  • 从GitHub上下载JAVA应用源代码。
# mkdir /opt/java
# mkdir /opt/java/demo
# cd /opt/java/demo
# git clone https://github.com/b3log/solo
  • 修改solo/src/main/resources/latke.properties。如果想要使用非本机访问Solo,则需要修改serverHost。
#### Server ####
# Browser visit protocol
serverScheme=http
# Browser visit domain name
serverHost=192.168.121.133
# Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!
serverPort=8080

#### Cookie ####
cookieName=solo
cookieSecret=Beyond

#### Runtime Mode ####
runtimeMode=DEVELOPMENT
#runtimeMode=PRODUCTION
  • 一般的Maven项目可以选择使用Maven编译构建应用。
# cd solo
# mvn package

构建完成后,将在target目录下生成一个WAR包。
这里写图片描述

这里可以自己编写Dockerfile,采用Tomcat作为基础镜像,将WAR拷贝到发布目录即可。

而Solo本身内嵌了Jetty(轻量级的 Java Web 容器)和H2(Java SQL 数据库),其官方直接提供了Dockerfile(在工程目录下),所以可以直接基于该Dockerfile构建。

Dockerfile内容如下:

FROM maven:3
ADD . /solo
WORKDIR /solo
RUN mvn install
WORKDIR /solo/target/solo
EXPOSE 8080
CMD ["/bin/sh", "-c", "java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter"]

官方的Dokcerfile选择Maven作为基础镜像,将整个工程复制到镜像中,执行构建,然后暴露8080端口。

# docker build -t blog .

这里写图片描述

  • 查看刚才生成的新镜像。
# docker images|grep blog

这里写图片描述

  • 测试镜像。
# docker run -it -p 8080:8080 blog

这里写图片描述

  • 浏览器访问测试。

这里写图片描述

之后结合Docker学习记录(1)——搭建自己的Docker Registry 将镜像上传至自己的镜像仓库即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值