如何将柏树添加到我当前的 docker 中?
How to add cypress into my current docker?
我有一个 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 . .
现在我想通过 运行ning 将 cypress (https://www.cypress.io/) 添加到 运行 测试中:
npm install --save-dev cypress
但也许它不起作用,因为我看不到 cypress 文件夹。
安装cypress后,我运行
/node_module/.bin/cypress open
我看不到柏树开着。
所以现在我不知道如何将 cypress 添加到我的 docker 到 运行 通过 cypress 在我的主机上进行测试。
运行 使用类似设置进入类似问题
我临时修复它的方法是手动进入包含我的 node_modules
文件夹和 运行ning node_modules/.bin/install
的文件夹,从那里你应该可以用 node_modules/.bin/open
或 $(npm bin)/cypress open
。
尝试在我的 docker-compose 上设置一个单独的柏树容器
cypress:
build:
context: .
dockerfile: docker/cypress
depends_on:
- node
volumes:
- .:/code
其中 docker 文件是 Cypress 的预构建文件 docker-container
能够使 docker-compose exec cypress node_modules/.bin/cypress verify
正常工作,但是当我尝试打开 Cypress 时它只是挂起。
希望这对 OP 有帮助,但希望有人可以提供更具体的答案,这将帮助我们 运行 赛普拉斯完全通过 docker
如果您正在使用 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 with Cypress 的综合教程:
您还可以在 docker hub 上使用现有的 cypress 图像,并在 docker compose 中构建它。我个人避免直接在 compose 中添加它,我为 cypress 创建了一个单独的 docker 文件。
我有一个 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 . .
现在我想通过 运行ning 将 cypress (https://www.cypress.io/) 添加到 运行 测试中:
npm install --save-dev cypress
但也许它不起作用,因为我看不到 cypress 文件夹。
安装cypress后,我运行
/node_module/.bin/cypress open
我看不到柏树开着。
所以现在我不知道如何将 cypress 添加到我的 docker 到 运行 通过 cypress 在我的主机上进行测试。
运行 使用类似设置进入类似问题
我临时修复它的方法是手动进入包含我的 node_modules
文件夹和 运行ning node_modules/.bin/install
的文件夹,从那里你应该可以用 node_modules/.bin/open
或 $(npm bin)/cypress open
。
尝试在我的 docker-compose 上设置一个单独的柏树容器
cypress:
build:
context: .
dockerfile: docker/cypress
depends_on:
- node
volumes:
- .:/code
其中 docker 文件是 Cypress 的预构建文件 docker-container
能够使 docker-compose exec cypress node_modules/.bin/cypress verify
正常工作,但是当我尝试打开 Cypress 时它只是挂起。
希望这对 OP 有帮助,但希望有人可以提供更具体的答案,这将帮助我们 运行 赛普拉斯完全通过 docker
如果您正在使用 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 with Cypress 的综合教程:
您还可以在 docker hub 上使用现有的 cypress 图像,并在 docker compose 中构建它。我个人避免直接在 compose 中添加它,我为 cypress 创建了一个单独的 docker 文件。