通过maven插件构建docker镜像

简介: 通过maven插件构建docker镜像: 1、在pom.xml 中添加maven的docker插件。 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.
通过maven插件构建docker镜像:
    1、在pom.xml 中添加maven的docker插件。
         <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>jingdata/microservice-discovery-eureka:0.0.1</imageName>
                <baseImage>java</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>
        
  2、构建docker镜像:  mvn  clean   package   docker:build
  3、执行docker images 查看刚构建的镜像
  4、启动镜像:  docker  run -d -p  8761:8761  jingdata/microservice-discovery-eureka:0.0.1
  5、访问测试:  128.0.0.1:8761 
  

插件读取dockerfile进行构建:

  1、在src/main目录下,新建文件夹docker,在文件夹中新建一个Dockerfile文件。
      FROM java:8
      VOLUME /tmp
      ADD  microservice-discovery-erueka-0.0.1-SNAPSHOT.jar   app.jar 
      RUN  bash   -c  'touch /app.jar'
      EXPOSE  9000
      ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
      修改pom.xml文件:
       <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>jingdata/microservice-discovery-eureka:0.0.2</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>
            </configuration>
        </plugin>
        
  2.将插件绑定在没某个phase执行
       <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <executions>
                <execution>
                    <id>build-image</id>
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <imageName>jingdata/microservice-discovery-eureka:0.0.3</imageName>
                <baseImage>java</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>      
  
  3.推送镜像
    (1)、修改maven的全局配置文件settings.xml,在其中添加docker hub的用户信息。
          <server>
              <id>docker-hub</id>
              <username>docker-hub的用户名</username>
              <password>docker-hub的密码</password>
              <configuration>
                <email>docker-hub的邮箱</email>
              </configuration>
          </server> 
    (2)、修改pom.xml文件
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>jingdata/microservice-discovery-eureka:0.0.4</imageName>
                <baseImage>java</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>
                
                <!-- 与maven配置文件settings中配置的server id一致,用于推送镜像--->
                <serverId>docker-hub</serverId>
            </configuration>
        </plugin>
   (3)、添加pushImage标示,推送镜像
          mvn clean package docker:build  -DpushImage
          
   (4)、推送到私有仓库地址:
          <imageName>localhost:5000/jingdata/microservice-discovery-eureka:0.0.4</imageName>
  
相关文章
|
16天前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
173 75
|
3天前
|
Ubuntu NoSQL 关系型数据库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
57 28
|
1月前
|
Docker 容器
将本地的应用程序打包成Docker镜像
将本地的应用程序打包成Docker镜像
|
22天前
|
NoSQL PHP MongoDB
docker push推送自己搭建的镜像
本文详细介绍了如何搭建和复盘两个Web安全挑战环境:人力资源管理系统和邮件管理系统。首先,通过Docker搭建MongoDB和PHP环境,模拟人力资源管理系统的漏洞,包括nosql注入和文件写入等。接着,复盘了如何利用这些漏洞获取flag。邮件管理系统部分,通过目录遍历、文件恢复和字符串比较等技术,逐步绕过验证并最终获取flag。文章提供了详细的步骤和代码示例,适合安全研究人员学习和实践。
45 3
docker push推送自己搭建的镜像
|
26天前
|
Docker 容器
|
1天前
|
Ubuntu NoSQL 开发工具
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
91 69
|
1月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
60 9
|
网络协议 安全 Java
【CI/CD技术专题】「Docker实战系列」使用Maven插件构建Docker镜像的方法
【CI/CD技术专题】「Docker实战系列」使用Maven插件构建Docker镜像的方法
299 0
【CI/CD技术专题】「Docker实战系列」使用Maven插件构建Docker镜像的方法
|
Java Linux 程序员
Docker与Jib(maven插件版)实战
实战Jib的maven插件,将java应用构建成docker,并且推送到本地镜像仓库或者hub.docker.com
767 0
Docker与Jib(maven插件版)实战
|
Docker 容器
Docker-Maven插件
Docker-Maven插件
255 0