maven构建项目并提交镜像到dockerhub

2022-05-26  本文已影响0人  王滕辉
  1. 首先在maven的settings.xml 文件中找到servers添加一个server
    这里的用户名密码对应的你的用户名密码,id谁便写 没有本地的私服可以用DockerHub的
    <server>
      <id>docker-hub</id>
      <username>user</username>
      <password>pass</password>
      <configuration>
        <email>514840279@qq.com</email>
      </configuration>
    </server>
  1. 接着创建项目修改pom

  2. 然后在properties 中填写
    docker.host 为你服务器上的docker环境机器的docker服务地址,
    docker.repository 是你私服的地址,dockerhub的不用

  3. plugins中添加 docker-maven-plugin

pom.xml

<properties>
...
        <docker.host>http://192.168.0.103:2375</docker.host>
        <docker.repository>192.168.0.103:5000</docker.repository>
</properties>
...
...
      <build>
        <finalName>${project.name}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!-- 添加docker-maven插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <executions>
                      <execution>
                        <id>default</id>
                        <phase>package</phase>   <!--绑定mvn的哪个命令-->
                        <goals>
                            <goal>build</goal>  <!--要执行的命令 -->
                            <goal>push</goal>
                       </goals>
                     </execution>
                </executions>
                <configuration>
                    <!-- docker.host就是docker服务的地址 是你的docker环境的地址文件会在这里进行构建镜像 -->
                    <dockerHost>${docker.host}</dockerHost>
                        <!-- 这个id是maven中对应的serverid -->
                    <serverId>docker-hub</serverId>
                    <!-- docker.repository就是私服的地址 ${docker.repository}/ 如果你上传到dockerHub是不需要写 ${docker.repository}/ -->
                    <imageName>${docker.repository}/514840279/${project.artifactId}:1.0</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <forceTags>true</forceTags>
                </configuration>
            </plugin>
        </plugins>
    </build>

最后执行下 mvn install 就可以打包jar 并打包docker 的镜像然后发布到镜像的中心

上一篇下一篇

猜你喜欢

热点阅读