繁体   English   中英

如何使用 alpine 镜像在 Docker 容器中运行单元测试并保存结果?

[英]How can I run units tests in Docker container using alpine image and save the results?

我目前位于 vue.js 项目的文件夹中。 源文件位于 ./src/ 文件夹中,测试文件位于 ./tests/ 中

通常在本地运行单元测试我运行以下命令:

npm install
npm ci
npm run test:ci

它产生,其中包括 ./report/coverage.lcov 文件

但是,我想使用 node:12-alpine docker image 在其中运行单元测试。 不要提供使用 Dockerfile。 我想使用docker run --rm node:12-alpine ....运行它,并在 docker run 命令完成时将 ./report 文件夹的内容复制到我的本地文件夹中。 但是,我无法弄清楚我该怎么做? 我应该使用哪些 docker run 参数?

为什么机器人在运行时将您的报告目标挂载为一个卷?

我可以通过创建 script.sh 文件在本地运行它

cd /tmp/run
npm install
npm ci
npm run test:ci

在项目目录中并运行:

docker run --rm -v ${PWD}/:/tmp/run -u 0 node:12-alpine sh /tmp/run/script.sh

这很棒,因为我不需要在本地安装另一个节点版本,并且在运行后删除容器...但是,我无法通过以下方式替换最后一行: cd /tmp/run && npm install ... 因为它引发了错误. 并不是真的想引入额外的脚本。 使用 --entrypoint 会输出另一个错误。

是的,我可以做到,而且很简单

docker run --rm -v ${PWD}/:/tmp/run -u 0 --workdir=/tmp/run node:14-alpine npm install && npm ci && npm run test:ci

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM