如何从docker获取报告文件并插入gitlab存储库
我创建了运行自动测试的docker。我通过gitlab脚本运行它。除报告文件外的所有工作。我无法从docker获取报告文件并将其插入存储库。命令如何从docker获取报告文件并插入gitlab存储库,docker,gitlab,gitlab-ci,Docker,Gitlab,Gitlab Ci,我创建了运行自动测试的docker。我通过gitlab脚本运行它。除报告文件外的所有工作。我无法从docker获取报告文件并将其插入存储库。命令docker cp不工作。我的GitLab脚本和docker文件: Gitlab脚本: 阶段: -试验 测试: 图片:docker:最新 服务: -姓名:docker:dind 入口点:[“env”、“-u”、“DOCKER\u主机”] 命令:[“dockerd entrypoint.sh”] 变量: DOCKER_主机:tcp://docker:237
docker cp
不工作。我的GitLab脚本和docker文件:
Gitlab脚本:
阶段:
-试验
测试:
图片:docker:最新
服务:
-姓名:docker:dind
入口点:[“env”、“-u”、“DOCKER\u主机”]
命令:[“dockerd entrypoint.sh”]
变量:
DOCKER_主机:tcp://docker:2375/
DOCKER_驱动程序:覆盖2
#看https://github.com/docker-library/docker/pull/166
DOCKER_TLS_CERTDIR:“
阶段:测试
在脚本之前:
-docker登录-u“xxx”-p“yyy”docker.io
脚本:
-docker运行--将authContainer命名为“rrr/image:0.0.1”
在脚本之后:
-docker cp authContainer:/artifacts$CI\u PROJECT\u DIR/artifacts/
人工产品:
时间:总是
路径:
-$CI_PROJECT_DIR/artifacts/test-result.xml
报告:
朱尼特:
-$CI_PROJECT_DIR/artifacts/test-result.xml
Dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk:2.1
COPY /publish /Spinelle.AutomaticTests
WORKDIR /Spinelle.AutomaticTests
RUN apt-get update -y
RUN apt install unzip
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install
RUN curl https://chromedriver.storage.googleapis.com/84.0.4147.30/chromedriver_linux64.zip -o /usr/local/bin/chromedriver
RUN unzip -o /usr/local/bin/chromedriver -d /Spinelle.AutomaticTests
RUN chmod 777 /Spinelle.AutomaticTests
CMD dotnet vstest /Parallel Spinelle.AutomaticTests.dll --TestAdapterPath:. --logger:"nunit;LogFilePath=/artifacts/test-result.xml;MethodFormat=Class;FailureBodyFormat=Verbose"
您如何知道
docker cp
不工作?也许其他地方的道路是错误的?尝试以下操作:检查路径authContainer:/artifacts
中是否有数据作为after\u脚本:ls authContainer:/artifacts
的第一行,然后检查ls$CI\u PROJECT\u DIR/artifacts/
在我的本地机器上工作的after\u脚本Docker cp
中当前行之后的(将报告复制到指定目的地)。我认为将其复制到存储库有问题。我现在不确定,但是:尝试运行docker cp
,而不是在后脚本
,而是在脚本
-部分。在新会话中运行脚本
后,只能从脚本
部分中创建的资源中获取工件o您知道,docker cp
不起作用吗?可能其他地方的路径有问题?尝试以下操作:检查路径authContainer:/artifacts
中是否有数据,作为脚本后的第一行:ls authContainer:/artifacts
然后检查当前行后的ls$CI\u PROJECT\u DIR/artifacts/
在我的本地机器上工作的after_脚本中(将报告复制到指定目标)。我认为将其复制到存储库有问题。我现在不确定,但是:尝试运行docker cp
,而不是在after_脚本
,而是在脚本
部分。在新会话中运行脚本后,只能从脚本
部分中创建的资源中获取工件。