在 Dockerfile 中添加 windows 文件夹

Add windows folder in Dockerfile

我有 dockernodejs 文件和 mongodb installation.I 安装 docker 插件并在其中创建了一个作业。现在我需要从 Dockerfile 构建图像。我必须在 Dockerfile 中应用复制命令,将 nodejs 应用程序复制到容器中。

FROM ubuntu:latest

#OS Update
RUN apt-get update
RUN apt-get -y install git git-core unzip python-pip make wget build-essential python-dev libpcre3 libpcre3-dev libssl-dev vim nano net-tools iputils-ping supervisor curl supervisor

WORKDIR /home/wipro
#Mongo Setup
RUN curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.0.2.tgz && tar -xzvf mongodb-linux-x86_64-3.0.2.tgz && cd mongodb-linux-x86_64-3.0.2/bin && cp * /usr/bin/
#RUN mongod --dbpath /home/azureuser/CI_service/data/ --logpath /home/azureuser/CI_service/log.txt --logappend --noprealloc --smallfiles --port 27017 --fork

#Node Setup
#RUN curl -O https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz && tar -xzvf node-v0.12.7.tar.gz && cd node-v0.12.7
#RUN cd /opt/node-v0.12.7 && ./configure && make && make install
#RUN cp /usr/local/bin/node /usr/bin/ && cp /usr/local/bin/npm /usr/bin/
RUN wget https://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
RUN cd /usr/local && sudo tar --strip-components 1 -xzf /home/wipro/node-v0.12.7-linux-x64.tar.gz
RUN npm install forever -g

#CI SERVICE
ADD prod /home/wipro/
ADD servicestart.sh /home/wipro/
RUN chmod +x /home/wipro/servicestart.sh
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
CMD ["sh", "/home/wipro/servicestart.sh"]

EXPOSE 80
EXPOSE 27017

在 docker 文件中,我试图将 prod 和 servicestart.sh 添加到 image.In linux 中。我是 windows 的新手。如何将这些文件从 Windows.?

添加到图像中

构建作业时,docker 插件出现问题

FATAL: uri was not specified java.lang.NullPointerException: uri was not specified
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)    
at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.withUri(DockerClientConfig.java:406)     
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.createDockerClient(DockerBuilder.java:120)    
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:204)   
at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:68)   
at hudson.tasks.BuildStepMonitor.perform(BuildStepMonitor.java:19)    
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814)    at hudson.model.Build$BuildExecution.build(Build.java:199)  
at hudson.model.Build$BuildExecution.doRun(Build.java:160)  
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:593)    
at hudson.model.Run.execute(Run.java:1567)  
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)  
at hudson.model.ResourceController.execute(ResourceController.java:88)  
at hudson.model.Executor.run(Executor.java:237)

需要指定什么URI?

您需要确保这些文件是:

  • 在与 Dockerfile 相同的文件夹中,以便成为 docker build context
  • 的一部分
  • 在以 c:\Users\<yourLogin> 开头的文件夹中,因为只有该文件夹安装在基于 VM boot2docker TiynyCore 的 Linux 主机中。

The OP confirms using the Docker build step plugin for Jenkins,URI

docker daemon -D -H tcp://127.0.0.1:2376