如何从docker获取报告文件并插入gitlab存储库

如何从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。我通过gitlab脚本运行它。除报告文件外的所有工作。我无法从docker获取报告文件并将其插入存储库。命令
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_脚本
,而是在
脚本
部分。在新会话中运行
脚本后,只能从
脚本
部分中创建的资源中获取工件。