gpt4 book ai didi

node.js - 使用 Azure 管道和 Docker 运行 Mocha 测试

转载 作者:行者123 更新时间:2023-12-02 16:12:53 35 4
gpt4 key购买 nike

我对 CICD 很陌生。

我有一个 Azure Web 应用程序,运行从 Express Nodejs 镜像构建的 Docker 容器。

我当前的流程是简约的。我有一个 Azure-pipelines.yml 文件,看起来像

trigger:
- master

pool:
vmImage: 'ubuntu-latest'

- task: AzureCLI@1
inputs:
azureSubscription: 'xxxxxx'
scriptLocation: 'inlineScript'
inlineScript: 'az acr build --registry registry123 --image image123:latest --file Dockerfile .'

还有一个看起来像这样的 dockerfile

FROM node:10

WORKDIR /poc/microservices

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD [ "node", "server.js" ]

现在我添加了一些可以使用 npm test 运行的 Mocha 测试,并且这些测试在本地运行良好。

现在我想将它们添加到管道中,以便在测试失败时它不会构建图像。

我有一个 mocha.opts 文件,在其中定义了 --reporter mocha-junit-reporter 并且测试使用 process.env.ENDPOINT 变量。

所以我的问题是如何将命令添加到管道中?

我只需添加

- script: npm install
- script: npm test

到 azure-pipelines.yml,然后在 azure devOps 门户的构建变量中配置 ENDPOINT 变量?

如果是这样,我运行两次 npm install 不是问题吗?一次在 Azure,另一次在 Docker?

最佳答案

如果您不将 node_modules 复制到 Docker 容器中,运行 NPM install 两次只会减慢您的部署速度,并且不会导致任何其他问题。

确保仅将源代码复制到 docker 容器并保留node_modules。您可以为此添加一个 .dockerignore 文件:

node_modules
npm-debug.log
Dockerfile
.dockerignore

这将确保软件包正确安装在 Docker 容器中。

关于node.js - 使用 Azure 管道和 Docker 运行 Mocha 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58216365/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com