docker - 如何将 cypress 添加到我当前的 docker 中?

标签 docker vue.js docker-compose cypress

我有一个 docker-compose.yml 文件:

version: '2'

services:
  web:
    build: .
    command: npm run dev
    volumes:
      - .:/usr/app
      - /usr/app/node_modules
    ports:
      - "8080:8080"
    expose:
      - "8080"

还有一个 Dockerfile

FROM node:7.7.2-alpine

WORKDIR /usr/app

COPY package.json .

RUN npm install --quiet

COPY . .

现在我想通过运行添加 cypress ( https://www.cypress.io/ ) 来运行测试:

npm install --save-dev cypress

但也许它不起作用,因为我看不到 cypress 文件夹。

安装cypress后,我运行

/node_module/.bin/cypress open

我看不到柏树打开。

所以现在我不知道如何将 cypress 添加到我的 docker 以通过 cypress 在我的主机上运行测试。

最佳答案

如果您使用的是 docker-compose,更简洁的解决方案是仅使用一个单独的专用 Cypress Docker 容器,因此您的 docker-compose.yml 变为:

version: '2'
services:
  web:
    build: .
    entrypoint: npm run dev
    volumes:
      - .:/usr/app
      - /usr/app/node_modules
    ports:
      - "8080:8080"
  cypress:
    image: "cypress/included:3.2.0"
    depends_on:
      - web
    environment:
      - CYPRESS_baseUrl=http://web:8080
    working_dir: /e2e
    volumes:
      - ./:/e2e

e2e 目录应该包含您的 cypress.json 文件和您的 integration/spec.js 文件。您的 package.json 文件根本不必包含 Cypress,因为它已融入 Cypress Docker 镜像 (cypress/included)。

有关更多详细信息,我写了一篇关于将 Docker Compose 与 Cypress 结合使用的综合教程:

关于docker - 如何将 cypress 添加到我当前的 docker 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103766/

相关文章:

node.js - 如何解决GKE容器中的EADDRINUSE问题?

node.js - UnknownEndpoint : Inaccessible host: `localhost' . 当尝试使用 express 和 dynamodb local 连接到本地主机时

docker - 如何在 Docker 命令行的 Docker 注册表中找到具有特定标记的 Docker 镜像?

javascript - 如何在vue.js循环中实现运行平衡?

javascript - Vuejs 传单 : Map Container Not Found

java - 我需要进行哪些更改/设置才能通过 WSL(windows-subsystem-for-linux)在 docker 中运行 java?

javascript - 使用vue制作SPA但遇到一些麻烦

mysql - Docker 无法链接到未运行的容器

docker - 为什么 docker-compose up 会删除其他正在运行的容器?

docker - Netflix Conductor 服务器本地 docker 容器不健康