maven docker jekins 持续集成

Jenkins Docker CI

  1. 安装 Docker
  2. 修改 Docker 的镜像为 aliyun 的,开放远程端口
  3. 安装 Docker 私有仓库,并将这个仓库加到 Docker 的 insecurity 中
  4. Jenkins 调用 Docker 可能有点问题
  5. Java 项目加入 maven docker 插件
<!--maven docker 打包插件-->
<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>
        <!--覆盖相同标签的镜像-->
        <registryUrl>192.168.1.150:5000</registryUrl>
        <pushImage>true</pushImage>
        <forceTags>false</forceTags>
        <dockerHost>http://192.168.1.150:2375</dockerHost>
        <imageName>192.168.1.150:5000/insight/${project.build.finalName}:${application.version}</imageName>
        <dockerDirectory>${project.basedir}/dockerfile</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
        <buildArgs>
            <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
    </configuration>
</plugin>

项目根目录创建一个 dockerfile 目录,并新建 Dockerfile 文件

FROM java:8
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8002
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]

mvn clean install -Dmaven.test.skip=true -Pdevelop,这样就可以把 jar 包打成镜像,并上传到私有仓库中了。

猜你喜欢

转载自www.cnblogs.com/tuhooo/p/10877092.html
今日推荐