修改daemon.json文件,开放端口2375
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
我的文件如下所示:
{"insecure-registries":["10.xx.xx.xx:5000"],"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
{
"graph":"/Data/docker"
}
在项目的pom文件引入docker-maven-plugin插件
com.spotify docker-maven-plugin 1.2.2 build install build http://10.xx.xx.xx:2375 10.xx.xx.xx:5000/${project.artifactId}:${docker.tag} ${project.basedir}/src/main/docker / ${project.build.directory} ${project.build.finalName}.jar 3 2000 10.xx.xx.xx:5000 ${docker.push}
重要配置解释:
在本地项目的src/main下创建docker目录,在docker目录下创建dockerfile文件
FROM 10.xx.xx.xx:5000/java
VOLUME /tmp
ENV LANG C.UTF-8
COPY *.jar app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Djava.util.Arrays.useLegacyMergeSort=true", "-jar","app.jar"]
此时,对该项目进行mvn install
时,相当于会同时进行docker:build的动作,将本地项目jar包构建成镜像到服务器中
如果每个服务的镜像构建没有差异,可以将dockerfile从子项目中抽出来,就不需要在每一个项目模块中都创建相同的文件,直接放在项目根路径下就可以进行通用,同时修改pom配置
${project.parent.basedir}/docker
此时的dockerfile存储位置为项目父级目录的docker文件夹下。