医疗微网站建设计划书,网页代码大全详解,又做投资的网站吗,庭院景观设计Maven打包构建Docker镜像并推送到仓库 文章目录Maven打包构建Docker镜像并推送到仓库一#xff0c;服务器Docker配置二#xff0c;本地项目maven配置2.1 pom.xml2.2 dockerfile2.3 验证2.4 统一dockerfile对于开发完成的服务要发布至服务器Docker时#xff0c;我刚学习了解D…Maven打包构建Docker镜像并推送到仓库 文章目录Maven打包构建Docker镜像并推送到仓库一服务器Docker配置二本地项目maven配置2.1 pom.xml2.2 dockerfile2.3 验证2.4 统一dockerfile对于开发完成的服务要发布至服务器Docker时我刚学习了解Docker时构建镜像方式是将我的本地服务先通过maven打包称为jar包然后再上传至我的服务器上通过Dockerfile将其构建成为镜像。后来才了解了直接通过maven命令直接打包构建的方式以下是完成这一操作的步骤。一服务器Docker配置
修改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
}二本地项目maven配置
2.1 pom.xml
在项目的pom文件引入docker-maven-plugin插件
plugin!-- https://mvnrepository.com/artifact/com.spotify/docker-maven-plugin --groupIdcom.spotify/groupIdartifactIddocker-maven-plugin/artifactIdversion1.2.2/versionexecutions!-- 当mvn执行install操作的时候执行docker的build和push --executionidbuild/idphaseinstall/phasegoalsgoalbuild/goal!-- goalpush/goal--/goals/execution/executionsconfiguration!-- 连接到 带docker环境的linux服务器 编译image --dockerHosthttp://10.xx.xx.xx:2375/dockerHost!--格式私有仓库/镜像名称:版本号, 如果要执行push操作 那么镜像名称必须为私有仓库为前缀不然无效。--imageName10.xx.xx.xx:5000/${project.artifactId}:${docker.tag}/imageName!--指定dockerfile文件路径--dockerDirectory${project.basedir}/src/main/docker/dockerDirectory!-- 指定jar包路径这里对应Dockerfile中复制 jar 包到 docker 容器指定目录配置也可以写到 Docokerfile 中 --resourcesresourcetargetPath//targetPathdirectory${project.build.directory}/directoryinclude${project.build.finalName}.jar/include/resource/resources!--跳过测试--!-- push到 docker hub 开始 --!-- serverId 这个是配置在maven的setting.xml中私服的登录账户信息--!-- serverIddocker-hub/serverId--retryPushCount3/retryPushCountretryPushTimeout2000/retryPushTimeoutregistryUrl10.xx.xx.xx:5000/registryUrl!-- 是否自動推送到Registry Server, 建議手動推送 --pushImage${docker.push}/pushImage!-- push到 docker hub 结束 --/configuration/plugin重要配置解释
dockerHostdocker所在服务器的ip和开放的端口imageName最终构建的镜像名称dockerDirectory本地dockerfile文件存放路径targetPath本地jar包生成位置registryUrl服务器docker的仓库地址pushImage是否在构建镜像后同时推送到Docker仓库
2.2 dockerfile
在本地项目的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.egdfile:/dev/./urandom, -Djava.util.Arrays.useLegacyMergeSorttrue, -jar,app.jar]2.3 验证
此时对该项目进行mvn install时相当于会同时进行docker:build的动作将本地项目jar包构建成镜像到服务器中
2.4 统一dockerfile
如果每个服务的镜像构建没有差异可以将dockerfile从子项目中抽出来就不需要在每一个项目模块中都创建相同的文件直接放在项目根路径下就可以进行通用同时修改pom配置 !--指定dockerfile文件路径--dockerDirectory${project.parent.basedir}/docker/dockerDirectory此时的dockerfile存储位置为项目父级目录的docker文件夹下。