您的位置:首页 > 科技 > IT业 > 小程序制作公司选卓越华网天下_自己做网站详细步骤_免费下载百度app最新版本_网络营销教程

小程序制作公司选卓越华网天下_自己做网站详细步骤_免费下载百度app最新版本_网络营销教程

2024/12/22 23:49:15 来源:https://blog.csdn.net/qq_44732146/article/details/144436076  浏览:    关键词:小程序制作公司选卓越华网天下_自己做网站详细步骤_免费下载百度app最新版本_网络营销教程
小程序制作公司选卓越华网天下_自己做网站详细步骤_免费下载百度app最新版本_网络营销教程

dockerfile-maven-plugin插件的介绍

dockerfile-maven-plugin目前这款插件非常成熟,它集成了Maven和Docker,该插件的官方文档地址如下:
地址:https://github.com/spotify/dockerfile-maven

其他说明:

  • dockerfile是用来构建Docker项目的,这也是该插件所使用的,它们是强制性的。
    将Docker构建过程集成到Maven构建过程中。如果你绑定了默认阶段,当你输入 mvn package 命令时,你将得到一个Docker镜像;当你输入 mvn deploy 命令时,该镜像将会被推送。
  • 在pom.xml文件中使用goals标签声明我们想要做什么。这个里面的配置就相当于我们输入了 mvn dockerfile:build 命令后,再输入 mvn dockerfile:tag 命令,接着再输入 mvn dockerfile:push 命令。
  • 该插件需要Java 7或更高版本和Apache Maven 3或更高版本(dockerfile-maven-plugin <= 1.4.6 需要Maven >= 3,其它情况需要Maven >= 3.5.2)。在实践中要运行集成测试或者使用该插件,需要一个Docker运行环境。

开放远程Docker远程访问端口

# vim /lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2377 -H unix:///var/run/docker.sock在配置项中修改该属性,该方式会直接暴露可以操控docker进程的端口,需要注意安全,修改完后重启docker服务systemctl restart docker

在客户端添加系统环境变量参数

DOCKER_HOST
tcp://xx.xx.xx.xx:2375
在这里插入图片描述

为项目添加插件

父项目pom文件

<properties><dockerfile-maven-plugin.version>1.4.13</dockerfile-maven-plugin.version><docker.image.prefix>registry.xx.cn/xx</docker.image.prefix><dockerfile.skip>false</dockerfile.skip><docker.image.tag>1.0.0</docker.image.tag><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties><plugin><!-- 每个模块不继承此插件依赖 false--><inherited>true</inherited><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>${dockerfile-maven-plugin.version}</version>
<!--                    <executions>-->
<!--                        <execution>-->
<!--                            <id>default</id>-->
<!--                            <phase>package</phase>-->
<!--                            <goals>-->
<!--                                <goal>build</goal>-->
<!--                                <goal>tag</goal>-->
<!--                            </goals>-->
<!--                            <configuration>-->
<!--                                <tag>${project.version}</tag>-->
<!--                            </configuration>-->
<!--                        </execution>-->
<!--                    </executions>--><configuration><!-- 上下文路径配置,此处设置为项目根路径 用来读取Dockerfile--><contextDirectory>${project.basedir}</contextDirectory><!--使用maven setting认证--><useMavenSettingsForAuth>true</useMavenSettingsForAuth><!-- 镜像仓库用户名 --><username>xxxx</username><!-- 镜像仓库密码 --><password>123456</password><!-- 标记 --><tag>${project.version}</tag><!-- 作为Dockerfile文件传入--><buildArgs><no-cache>true</no-cache><pull>true</pull><!-- <JAR_FILE>target/vp-gateway.jar</JAR_FILE> --></buildArgs><!-- 跳过默认标记 --><skipTag>true</skipTag><!-- 强制创建新标记 --><force>true</force><!-- 输出更详细信息 --><verbose>true</verbose><!-- 跳过插件操作 跳过所有的子模块 全局跳过 --><skip>${dockerfile.skip}</skip><!--关闭缓存--><noCache>true</noCache><!-- 自动更新镜像 --><pullNewerImage>true</pullNewerImage><!-- Dockerfile所在目录路径 --><dockerfile>Dockerfile</dockerfile></configuration>
</plugin>

子模块pom目录

<!-- docker打包插件,groupId、artifactId、version表示插件自生的版本信息 -->
<plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>${dockerfile-maven-plugin.version}</version><configuration><repository>${docker.image.prefix}/${project.build.finalName}</repository> <!-- 指定镜像构建后要推送的仓库地址 --><!-- 指定构建镜像的版本tag --><tag>${docker.image.tag}</tag><!-- 不跳过 --><skip>false</skip><buildArgs><!--Maven 构建的 jar 包相对路径和名称--><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration>
</plugin>

Dockerfile文件

# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
FROM  bellsoft/liberica-openjdk-debian:8-cds
#FROM  registry.flow.cn/library/eclipse-temurin:8-jreLABEL maintainer="Zhujj"
ARG APP_NAME=test.jarRUN mkdir -p /appWORKDIR /appCOPY ./target/${APP_NAME}.jar ./app.jar# 环境变量
ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx2048m"EXPOSE ${SERVER_PORT}ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \# 应用名称 如果想区分集群节点监控 改成不同的名称即可#-Dskywalking.agent.service_name=${APP_NAME} \#-javaagent:/app/skywalking/agent/skywalking-agent.jar-#agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:30005 \-XX:+HeapDumpOnOutOfMemoryError ${JAVA_OPTS} \-jar app.jar

打包发布为远程docker镜像

进入到子模块根目录执行下面的命令:

mvn clean install -Pprod dockerfile:build dockerfile:push -DskipTests

-Pprod 指定profile为prod
发布成功之后就可以在仓库上看到自己的镜像了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com