使用 jenkins 的 docker 文件构建 docker 图像

build docker image with dockerfile by jenkins

我从昨天开始就被屏蔽了,需要一些帮助。我尝试同时使用 jenkins docker-plugindocker-plugin-step 从 docker 文件构建 docker 图像。

但是,当我尝试 运行 jenkins 作业时,出现以下异常:

Docker Build
Docker Build : build with tag jdubois/jhipster-docker:Gateway_Jenkins_V1 at path /home/javateam/DockerfileGateway
ERROR: Build step failed with exception
java.lang.NullPointerException: config was not specified
    at shaded.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:226)
    at com.github.dockerjava.core.DockerClientImpl.<init>(DockerClientImpl.java:36)
    at com.github.dockerjava.core.DockerClientImpl.getInstance(DockerClientImpl.java:52)
    at com.github.dockerjava.core.DockerClientBuilder.getInstance(DockerClientBuilder.java:29)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher$Run.invoke(DockerBuilderPublisher.java:144)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher$Run.invoke(DockerBuilderPublisher.java:139)
    at hudson.FilePath.act(FilePath.java:991)
    at hudson.FilePath.act(FilePath.java:969)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher$Run.buildImage(DockerBuilderPublisher.java:139)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher$Run.run(DockerBuilderPublisher.java:89)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher.perform(DockerBuilderPublisher.java:180)
    at hudson.tasks.BuildStepMonitor.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.build(MavenModuleSetBuild.java:915)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:866)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
    at hudson.model.Run.execute(Run.java:1744)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:531)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Build / Publish Docker Containers' marked build as failure
Finished: FAILURE

以下是docker文件内容:

#Basic images for Gateway MS
FROM jdubois/jhipster-docker:Gateway_Jenkins_V1

#Fetch last Gateway MS version from gitlab and run it
RUN cd /home/jhipster/DockerJenkinsGateway && \
git pull origin master

# expose the working directory, the Tomcat port, the BrowserSync ports, the SSHD port, and run SSHD
VOLUME ["/jhipster"]
EXPOSE 8080 3000 3001 22
CMD    /usr/sbin/sshd -D

哪里做错了??

另一种选择是使用 Jenkins 提供的 shell 作为构建步骤,并使用通常在 [=16= 中使用的命令行参数构建 Docker 图像] 脚本。

这就是我们在构建服务器上所做的,它使我们能够对诸如版本控制以及 image/tag 推送到 Docker 集线器等事情进行细粒度控制。

如果您使用的是 Jenkins 2.0 或更高版本,那么 Jenkins 会为您提供构建管道作为代码的选项,您可以轻松集成 docker 及其存储库。

转到 --> 新项目 --> select 多分支管道选项,您将看到通过 Jenkins 连接到 docker 的选项。

如果有更多详细信息,请告诉我。