簡體   English   中英

詹金斯用dockerfile構建docker鏡像

[英]build docker image with dockerfile by jenkins

自昨天以來,我一直被封鎖,需要一些幫助。 我試圖同時使用jenkins docker-pluginjenkins docker-plugin docker-plugin-step從dockerfile構建docker映像。

但是,當我嘗試運行詹金斯作業時,它給了我以下異常:

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$1.invoke(DockerBuilderPublisher.java:144)
    at com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher$Run$1.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$1.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

以下是dockerfile的內容:

#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作為構建步驟,並僅使用通常在該shell腳本中使用的命令行參數來構建Docker映像。

這就是我們在構建服務器上執行的操作,它使我們能夠對版本控制以及要推送到Dockerhub的圖像/標簽進行精細控制。

如果您使用的是Jenkins 2.0或更高版本,則Jenkins為您提供了構建管道作為代碼的選項,並且您可以輕松集成docker及其存儲庫。

轉到->新項目->選擇多分支管道選項,您將看到通過Jenkins連接到docker的選項。

讓我知道更多細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM