docker-maven-plugin 完全免Dockerfile 文件 - atliwen - 博客园

# DockerSpringBootPlugin

  docker-maven-plugin 完全免Dockerfile 文件

  使用docker-maven-plugin 进行完全免 Dockerfile 文件

  注意 EXPOSE 在spring boot 中不起作用

  详细 

  https://github.com/spotify/docker-maven-plugin  

  本机不安装 docker  连接其他主机或虚拟机  

   需要添加两个额外配置

      <dockerHost>https://ip:2376</dockerHost>

      <dockerCertPath>证书地址</dockerCertPath>

  这两个地址可以 在 docker 环境变量中查询到
  如果是 docker-machine 创建的虚拟机 可以同 env 连接的的时候 会显示

  
Mvnen :

构建镜像

  mvn clean package docker:build

构建镜像并且推送到镜像表

  mvn clean package docker:build -DpushImage

复制代码; "复制代码")

<build>

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <configuration>
                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                <!--<dockerDirectory>src/main/docker</dockerDirectory>-->
                <baseImage>java:8</baseImage>
                <entryPoint>\["java", "-jar", "/${project.build.finalName}.jar"\]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

复制代码; "复制代码")

  建议  

    如果自己或公司的  docker镜像仓库   ${docker.image.prefix} 设置为自己的 自己的名称  后续上传的时候 就不需要 改名称 了  

_     如果自己不想搭建 公司也没有 但是想 可以随时获取的 可以使用 阿里云的 docker  镜像管理   
_

实例 GitHub  https://github.com/atliwen/DockerSpringBootPlugin

使用私有 docker 镜像仓库 

复制代码; "复制代码")

<properties>

<docker.maintainer>统一Manven 版本依赖</docker.maintainer>  
<docker.imageName>parent</docker.imageName>  

</properties>

<build>

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>

            <configuration>
                <serverId>docker-hub</serverId>
                <registryUrl>https://10.10.6.50:5000</registryUrl>
                <dockerHost>https://10.10.12.205:2376</dockerHost>
                <dockerCertPath>C:\\Users\\admin\\.docker\\machine\\machines\\manager</dockerCertPath>
                <imageName>10.10.6.50:5000/${docker.imageName}:${project.version}</imageName>
                <baseImage>java:8</baseImage>
                <maintainer>${docker.maintainer}</maintainer>
                <volumes>/tmp</volumes>
                <entryPoint>\["java", "-jar", "/${project.build.finalName}.jar"\]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

复制代码; "复制代码")

注意:

   在子Maven 项目中  写 定义  镜像名称 和项目名称   

docker 镜像 TAG 为版本号 <version>0.0.1-SNAPSHOT</version>

<properties>
<docker.maintainer> EDI 订单处理服务</docker.maintainer>
<docker.imageName>dj-atliwen-ediwebapi</docker.imageName>
</properties>

   登录私有镜像仓库的配置

<serverId>docker-hub</serverId>
<registryUrl>https://10.10.6.50:5000</registryUrl>

serverId 是Maven 中的配置 配置 Maven settings.xml 中 server 节点

复制代码; "复制代码")

<servers>
<server>

<id>docker-hub</id>
<username>foo</username>
<password>secret-password</password>
<configuration>
  <email>foo@foo.bar</email>
</configuration>

</server>
</servers>

// email 也是必须填写的

复制代码; "复制代码")


Original url: Access
Created at: 2019-03-06 14:46:02
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论