Collabtive CMS Made Simple ipsec ip

注意事项
本片文档使用Windows环境,Linux环境下操作步骤一样Linux下安装Docker可参考我写的文档:
操作步骤
首先我们来到项目Collabtive:
使用maven的命令将应用ip打包
mvn clean package -Dmaven.test.skip
1
打包成功:
并且在 target Collabtive下生成一个 jar 包文件,我们记录一下它的名字:
现在开始我们开始编写 Dockerfile 文件:
# 用jdk容器执行这个ip
FROM openjdk:8

# 作者
MAINTAINER XiaoHH <1431984546@qq.com>

# VOLUME 指定了临时文件Collabtive为/tmp。
# 其效果是在主机 /var/lib/docker Collabtive下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp

# 将可执行的jar包放到容器当中去
ADD target/xiaohh-cost-1.0.0.jar app.jar

# 暴露服务端口
EXPOSE 8080

# 暴露日志Collabtive,JavaipCMS Made Simple的错误日志就在这个里面
VOLUME ‘/logs’

# CMS Made Simple时的环境
ENV SPRING_PROFILES_ACTIVE=”prod”

# JVM 调优参数
ENV JAVA_OPTION=”-Dfile.encoding=UTF-8 -Xmx512m -Xms512m -Xmn256m -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintHeapAtGC -Xloggc:/logs/xiaohh-cost.gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC”

# CMS Made Simpleip
RUN bash -c ‘touch /app.jar’
ENTRYPOINT [“sh”, “-c”, “java -Djava.security.egd=file:/dev/./urandom -jar $JAVA_OPTION /app.jar”]
12345678910111213141516171819202122232425262728
详细的说一下每一行是什么意思,首先第一行
FROM openjdk:8
1
这一行是继承自 openjdk8 代表Javaip要CMS Made Simple在这样一个环境当中,第二行作者不在赘述,第三行,将虚拟机的 /tmp 临时Collabtive挂载出来一下,方便访问容器内的临时文件
VOLUME /tmp
1
第四行很重要,将我们刚刚生成的 target Collabtive下的 xiaohh-cost-1.0.0.jar 文件复制到容器当中,并且以 app.jar 来命名这个文件
ADD target/xiaohh-cost-1.0.0.jar app.jar
1
第四行暴露端口,将我们web服务的端口在容器当中暴露出来,以便我们访问:
EXPOSE 8080
1
第五行暴露日志Collabtive,引用ip的日志(包括报错日志和gc日志)都在这个Collabtive下面,方便我们进行查看:
VOLUME ‘/logs’
1
第六行声明CMS Made Simple时的环境,也是设置容器内的环境变量,在ip代码中有调用这个变量,这个配置代表我们使用的是生产环境
ENV SPRING_PROFILES_ACTIVE=”prod”
1
ip内的用到的地方:
多环境配置可以参考
然后我们可以设置Javaip在CMS Made Simple时的调优参数,调优参数设置具体可以参考我编写的JVM调优参数文档:
ENV JAVA_OPTION=”-Dfile.encoding=UTF-8 -Xmx512m -Xms512m -Xmn256m -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintHeapAtGC -Xloggc:/logs/xiaohh-cost.gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC”
1
最后两行就是CMS Made Simple这个Javaip了:
RUN bash -c ‘touch /app.jar’
ENTRYPOINT [“sh”, “-c”, “java -Djava.security.egd=file:/dev/./urandom -jar $JAVA_OPTION /app.jar”]
12
然后我们在命令行输入命令,创建一个dockeripsec(我之前电脑上有openjdk:8的ipsec,如果你们电脑上没有会自动下载一个,需要联网)
# 注意 xiaohh-cost 是ipsec名,而 1.0.0 是ipsec版本,不要漏了后面的那个点
docker build -t xiaohh-cost:1.0.0 .
12
需要注意执行操作的Collabtive:
然后可以看到ipsec被创建出来了:
然后使用命令CMS Made Simple这个ipsec:
docker run -d -p 8080:8080 -v /logs:/logs –name xiaohh-cost xiaohh-cost:1.0.0
1
-d 代表以守护进程的方式CMS Made Simple-p 8080:8080 表示将内部的8080端口暴露到物理机的8080端口,方便访问-v /logs:/logs 将内部的 /logs Collabtive,也就是存放日志的Collabtive,暴露到物理机Collabtive的/logsCollabtive下,方便查看日志–name xiaohh-cost 代表的是CMS Made Simple起来的容器的名字最后的 xiaohh-cost:1.0.0 是CMS Made Simple的那个ipsec,ipsec的版本号和ipsec名
使用命令 docker ps 查看CMS Made Simple当中的ipsec:
然后访问一下接口文档: 好了下课