docker - 如何在 gitlab 本地分支上挂载 docker 卷?
问题描述
我正在尝试挂载 gitlab 本地分支文件夹。Docker 运行命令在这里:
docker run --name img -v "$(pwd)":/app test-image
这是行不通的。我在我的.gitlab-ci.yml
文件中添加了这个。
如何在运行 docker 容器时挂载 gitlab 分支文件夹以写入数据?
我一直在寻求帮助:-(
解决方案
最后我可以在我同事的帮助下使它工作:-)
我是 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 pages解决了这个问题。我正在安装 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 映像中的 perl 脚本。
这里重要的是输出。我们可以为输入和输出提供任何名称,但输出应安装在我们用作artifact的public上。
在当前目录中创建一个文件夹作为 /public 并将其挂载为输出。现在,您可以在gitlab pages(settings->pages)中看到您的输出。正如我之前提到的,只有当它是具有 index.html 的静态 html 内容时,我们才能查看 gitlab 页面。如果您没有 index.html,那么您必须下载工件并查看文件。作业完成后,它将创建一个工件文件夹。您可以查看作业执行的右侧。
推荐阅读
- python - 给定字典和列表的频率计数
- python - 如何使用 pandas 根据季节对时间序列进行分组?
- python - 使用 IFTTT 将温度和湿度信息从 Pi 发送到手机时出现问题
- c++ - (C++) 使用 OR 运算符将值与数组的每个元素进行比较的更简单方法?
- apache-beam - 如何为数值类型指定 BeamSQL UDF
- java - 在 intellij IDEA 中设置 gstreamer 时出现“无法加载库:gstreamer”
- statistics - 正在运行的奇异容器的统计信息
- java - 为什么标签不会出现在 JFrame GUI 中?
- javascript - 如何使用 jQuery Ajax 发送带有文本的表情符号?
- c - 从 C 程序调用 x86 汇编函数时检索到的矩阵值不正确