Jenkins Docker CI
- 安装 Docker
- 修改 Docker 的镜像为 aliyun 的,开放远程端口
- 安装 Docker 私有仓库,并将这个仓库加到 Docker 的 insecurity 中
- Jenkins 调用 Docker 可能有点问题
- 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 包打成镜像,并上传到私有仓库中了。