美文网首页Docker容器Docker入门系列
docker入门—4. 使用fabric8构建并推送Docker

docker入门—4. 使用fabric8构建并推送Docker

作者: ted005 | 来源:发表于2019-03-10 20:09 被阅读8次

    使用fabric 8和maven结合,可以在使用maven构建应用时自动构建docker image。

    示例源码,包含POM配置,Dockerfile

    编写Dockerfile

    借用之前的Dockerfile,不过ADD命令稍有不同,这里的路径是maven/for_docker-0.0.1-SNAPSHOT.jar,因为使用下面的assembly参数配置后,jar包会拷贝到docker build目录下。

    #继承centos docker file
    FROM centos
    
    #安装JDK
    RUN yum install -y java
    
    #配置docker存储目录
    VOLUME /tmp
    
    #将maven目录的jar包拷贝到docker中,并命名为for_docker.jar
    ADD maven/for_docker-0.0.1-SNAPSHOT.jar for_docker.jar
    
    ENTRYPOINT ["java", "-jar", "/for_docker.jar"]
    

    添加Fabric 8依赖

    <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>0.28.0</version>
    
        <configuration>
    
            <dockerHost>unix:///var/run/docker.sock</dockerHost>
    
            <verbose>true</verbose>
            <images>
                <image>
                    <!--如果要推送到docker hub,这里需要使用 用户名 -->
                    <name>ted005/for_docker</name>
                    <build>
                       
                       <!--Dockerfile所在目录-->
                       <dockerFileDir>${project.basedir}/src/main/docker/</dockerFileDir>
    
                        <!--将jar包拷贝到docker build目录中-->
                        <assembly>
                            <descriptorRef>artifact</descriptorRef>
                        </assembly>
                        
                        <!--latest标签-->
                        <tags>
                            <tag>latest</tag>
                        </tags>
                    </build>
                </image>
            </images>
        </configuration>
    
    </plugin>
    

    执行maven命令并构建docker image

    mvn clean package docker:build
    

    构建后的工程目录如下:可以看到Dockerfilemaven目录平级

    构建docker

    推送到docker hub上

    • 配置maven settings.xml文件:
    <servers>
        <server>
          <id>docker.io</id>
          <username>ted005</username>
          <password>XXXXXX</password>
        </server>
    </servers>
    
    • 执行命令
    mvn clean package docker:build docker:push
    
    • 在docker hub可以看到刚刚推送成功的docker image


      docker hub

    相关文章

      网友评论

        本文标题:docker入门—4. 使用fabric8构建并推送Docker

        本文链接:https://www.haomeiwen.com/subject/gfpppqtx.html