我正在尝试挂载gitlab本地分支文件夹。 Docker运行命令在这里:
docker run --name img -v "$(pwd)":/app test-image
这不起作用。
我将此添加到了.gitlab-ci.yml
文件中。
如何在运行docker容器时挂载gitlab分支文件夹以写入数据?
我一直在寻求帮助:-(
答案 0 :(得分:0)
最后我可以在同事的帮助下使其工作:-)
我是gitlab的新手。抱歉,如果我解释错了。
这是我的解决方案:
我试图在容器中挂载本地文件夹以在本地文件夹中创建输出文件,这样我就可以查看输出文件。
这是我的Dockerfile
FROM openjdk:7
RUN mkdir /myApp
COPY myProject/ /myApp
ENTRYPOINT ["perl","/myApp/entrypoint.pl"]
这里我要将输出存储在docker容器中的/ app中,并将其挂载到本地文件夹中。我正在使用以下命令。
docker run --name img -v "$(pwd)":/app test-image
这是挂载点"$(pwd)":/app
(本地当前工作目录),但这未在我的当前目录中创建任何输出。我不知道是否有可能在本地分支目录中创建输出。
我查看输出文件和输出的意图是静态html内容。因此,我通过使用 gitlab页面解决了这一问题。我安装gitlab 工件的方式是,可以在 gitlab页面中查看我的文件(您只能为静态html内容创建gitlab页面)。
这是我的gitlab CI文件
pages:
stage: deploy
image: docker:stable
script:
- mkdir -p ./public
- docker run -v "$(pwd)"/input:/source -v "$(pwd)":/output test-image -input
/source -output /ouput/public || true
artifacts:
paths:
- public
根据我的要求,docker run
上方的命令是将命令行参数(-input和-output)传递给docker image中的perl脚本。
重要的是输出。我们可以为输入和输出提供任何名称,但是输出应该安装在 artifact 上的 public 上。
在当前目录中将文件夹创建为/ public并将其安装为输出。现在,您可以在 gitlab页面(设置->页面)中看到您的输出。 正如我之前提到的,只有当它是具有index.html的静态html内容时,我们才能查看gitlab页面。 如果没有index.html,则必须下载工件并查看文件。作业完成后,将创建一个工件文件夹。您可以查看作业执行的右侧。