Docker容器Docker入门系列

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

2019-03-10  本文已影响8人  ted005

使用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上

<servers>
    <server>
      <id>docker.io</id>
      <username>ted005</username>
      <password>XXXXXX</password>
    </server>
</servers>
mvn clean package docker:build docker:push
上一篇 下一篇

猜你喜欢

热点阅读