将CI docker cp文件从实例循环到工件



我正在使用Docker运行CircleCI,然后测试我的代码,测试完成后,测试覆盖率将记录到一个txt文件中,我想将其复制到工件文件夹中。

- run:
name: Run test coverage
command: |
docker-compose exec api mkdir /tmp_reports
docker-compose exec api coverage report > /tmp_reports/coverage_output.txt
docker cp api:/tmp_reports/coverage_output.txt /tmp/coverage_results
- store_artifacts:
path: /tmp/coverage_results

CircleCI错误

/bin/bash: line 1: /tmp_reports/coverage_output.txt: No such file or directory
Exited with code 1

我已经在本地运行了这个,并将文件从docker容器复制到我的本地目录,但circle似乎对此有问题。有人能给我指一指正确的方向吗?谢谢。

在脚本的第二行,将输出发送到文件> /tmp_reports/coverage_output.txt,该文件将写入容器外的文件。输出的重定向由容器外的bash处理。

因此,在第1行中,您在容器内创建了目录,而在第2行中,它失败了,因为目录/tmp_reports不存在于容器外。

您可以通过将所有3行替换为:来解决此问题

mkdir -p /tmp/coverage_results
docker-compose exec api coverage report > /tmp/coverage_results/coverage_output.txt

最新更新