如何在docker容器中针对外部应用程序运行cypress测试

如何在docker容器中针对外部应用程序运行cypress测试,docker,docker-compose,cypress,Docker,Docker Compose,Cypress,我有一套cypress e2e测试。这些测试的代码存在于他们自己的git repo中。 当通过cypress cli手动执行这些测试时,我可以根据环境DEV/QA/STG和PROD点击不同的URL 我可以在本地运行应用程序,但不希望在本地运行,我要做的是在容器内执行测试,并让它们在容器外访问应用程序 为了实现这一点,我在端口4200上本地启动了应用程序。我的cypress配置在其配置文件中设置了基本url属性,我可以从cypress cli(而不是docker)成功运行测试 在我的cypress

我有一套cypress e2e测试。这些测试的代码存在于他们自己的git repo中。
当通过cypress cli手动执行这些测试时,我可以根据环境DEV/QA/STG和PROD点击不同的URL

我可以在本地运行应用程序,但不希望在本地运行,我要做的是在容器内执行测试,并让它们在容器外访问应用程序

为了实现这一点,我在端口4200上本地启动了应用程序。我的cypress配置在其配置文件中设置了基本url属性,我可以从cypress cli(而不是docker)成功运行测试

在我的cypress测试报告中,我有以下Dockerfile

FROM cypress/base:12.18.4
RUN mkdir /app
WORKDIR /app
COPY . /app
RUN npm install
RUN $(npm bin)/cypress verify
RUN ["npm","run","cypress:run"]
执行
docker run
时,我看到以下错误

#12 6.411 Cypress could not verify that this server is running:
#12 6.411
#12 6.411   > http://localhost:4200/
#12 6.411
#12 6.411 We are verifying this server because it has been configured as your `baseUrl`.
#12 6.411
#12 6.411 Cypress automatically waits until your server is accessible before running tests.
#12 6.411
#12 6.411 We will try connecting to it 3 more times...
#12 9.417 We will try connecting to it 2 more times...
#12 12.42 We will try connecting to it 1 more time...
#12 12.42
#12 16.43 Cypress failed to verify that your server is running.

不完全确定如何“允许”测试访问我的
localhost:4200

我觉得我需要创建一个docker compose文件,但不确定网络细节

非常感谢任何帮助或想法

只需将
--network host
键添加到您的
docker run
命令:

docker run --name cypress --network host cypress/base:12.18.4