You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker交互式运行Cypress时添加环境变量URL

解决方案

你可以通过以下几种方式在Docker环境中传递Cypress需要的baseUrl:

方法1:在Docker命令中添加环境变量

直接在docker run命令里用-e参数添加BASE_URL(Cypress会自动识别这个环境变量),修改后的完整命令如下:

docker run -it --rm \
    --network host \
    -v ~/.Xauthority:/root/.Xauthority:ro \
    -e DISPLAY \
    -e BASE_URL=https://ABC:1234 \
    -v $PWD:/e2e \
    -w /e2e \
    --entrypoint '' \
    cypress/included \
    npx cypress open

Cypress会自动读取BASE_URL作为测试的目标地址。

方法2:在cypress open命令后添加--env参数

如果你更习惯用--env传递参数,可以直接在npx cypress open后追加参数,命令如下:

docker run -it --rm \
    --network host \
    -v ~/.Xauthority:/root/.Xauthority:ro \
    -e DISPLAY \
    -v $PWD:/e2e \
    -w /e2e \
    --entrypoint '' \
    cypress/included \
    npx cypress open --env baseUrl=https://ABC:1234

这种方式和你在非Docker环境中的用法完全一致,直接通过Cypress命令行参数传递目标URL。

方法3:通过Cypress配置文件指定

如果项目中有cypress.config.js,可以在配置文件中直接设置baseUrl,或者读取环境变量:

// cypress.config.js
const { defineConfig } = require('cypress')

module.exports = defineConfig({
  e2e: {
    baseUrl: process.env.BASE_URL || 'https://default-url.com'
  }
})

之后在Docker命令中通过-e BASE_URL=https://ABC:1234传递环境变量即可,Cypress会自动加载配置文件中的设置。

注意:因为你使用了--network host,容器会共享主机的网络栈,只要主机能访问https://ABC:1234,容器就能正常访问该地址。

内容的提问来源于stack exchange,提问作者Jonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:20:08