装载卷以共享文件中docker容器的结果
我的问题是: 我有一个共享文件夹emptyDirVolumemountPath:“/home”,内存:false 我在docker文件中运行自动测试,这些测试被保存到docker容器主目录中的一个文件夹中。我想做的是与容器节点共享该目录,以将结果上载到另一个带有gsutils的容器 我正在做的是docker run-v/home:/home/tests,但是节点容器主目录是空的。我在本地测试了我的dockerfile并且正在工作,这是可行的吗 我将发布Jenkins文件和dockerfile的代码 詹金斯档案: DOCKERFILE 有人知道吗装载卷以共享文件中docker容器的结果,docker,jenkins-pipeline,dockerfile,Docker,Jenkins Pipeline,Dockerfile,我的问题是: 我有一个共享文件夹emptyDirVolumemountPath:“/home”,内存:false 我在docker文件中运行自动测试,这些测试被保存到docker容器主目录中的一个文件夹中。我想做的是与容器节点共享该目录,以将结果上载到另一个带有gsutils的容器 我正在做的是docker run-v/home:/home/tests,但是节点容器主目录是空的。我在本地测试了我的dockerfile并且正在工作,这是可行的吗 我将发布Jenkins文件和dockerfile的代
谢谢 问题与在Kubernetes管理的容器内执行jenkins管道阶段时使用docker deamon有关 使用docker run时,您拥有的docker deamon就是主机上的docker deamon,如下所述:
hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker'),
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
因此,当您使用卷映射-v/home:/home/tests时,将使用主机的目录/home,而不是kubernetes插件创建的容器的/home目录
要解决此问题,可以执行以下两种操作之一:
在正在执行管道阶段的kubernetes托管容器内配置不同的docker deamon。
将同一目录映射为可在docker run和kubernetes容器上访问。
第二个选项似乎更简单,可以通过以下方式实现:
向kubernetes podTemplate添加新的卷映射:hostPathVolumemountPath:“/home/tests”,hostPath:“/tmp/tests”,
运行容器时使用相同的目录:docker run-v/tmp/tests:/home/tests
玩得开心
FROM gcr.io/xyz
# Create app directory
RUN mkdir -p /usr/opt/hold-ats
WORKDIR /usr/opt/hold-ats
COPY package* ./
RUN npm install
COPY src src
RUN mkdir -p /home/tests
CMD ["./node_modules/.bin/newman", "run", "src/collections/smoke_tests.json", "-e", "src/environments/dev.json", "--reporter-htmlextra-export", "/home/tests" ,"--reporter-htmlextra-darkTheme", "--reporter-htmlextra-testPaging", "-r", "htmlextra"]
hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker'),
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),