我有一个关于在docker容器中运行柏树的快速问题(对docker没有太多经验,如果这是一个愚蠢的问题,很抱歉(
假设我的脚本部分是这样的:
"scripts": {
"clean:reports": "rmdir /S /Q cypress\reports && mkdir cypress\reports && mkdir cypress\reports\mochareports",
"pretest": "npm run clean:reports",
"scripts": "cypress run",
"combine-reports": "mochawesome-merge cypress/reports/mocha/*.json > cypress/reports/mochareports/report.json",
"generate-report": "marge cypress/reports/mochareports/report.json -f report -o cypress/reports/mochareports",
"posttest": "npm run combine-reports && npm run generate-report",
"test" : "npm run scripts || npm run posttest"
},
我的dockerfile入口点是这样的:
ENTRYPOINT ["npm","run"]
但当我从";docker run";命令行。。。是否有一种方法可以传递参数(例如带有要执行的specfile名称的--spec param(,考虑到";测试";脚本有两个命令?
我传递的参数是否只适用于";npm运行脚本"?或者两个命令都会收到?
感谢
如果使用entrypoint
,默认命令(cmd(将与之连接。因此,入口点为npm run
、默认命令为(例如(test
的Dockerfile只会在容器中生成npm run test
。
如果要覆盖默认命令或入口点(两者都有可能(,则必须使用docker run [OPTIONS] my-cypress-image npm run test --spec
。
如果您想运行cyprus命令,它应该是:例如docker run --entrypoint /bin/bash my-docker-image cypress run --spec
。
这两个选项都将导致容器很快运行,直到测试完成。您还可以选择通过docker run my-docker-image bash
保持容器运行,并通过docker exec npm run test
命令运行测试。