【发布时间】:2019-08-07 22:11:25
【问题描述】:
我在 Docker 容器中运行了 dotnet core 2.2 (aspnet core) 应用程序。我正在使用您在任何基本教程中都可以找到的最简单的 Dockerfile:
- 使用
microsoft/dotnet:2.2-sdk作为基础镜像 - 复制 *.csproj
- 恢复包
- 构建
- 发布到 /app 文件夹
- 使用
microsoft/dotnet:2.2.1-aspnetcore-runtime从 /app 文件夹运行应用程序
现在我想从另一个网站获取一些数据。这是一个 SPA,所以我需要先使用浏览器来呈现页面 - 我决定将 Selenium 与 ChromeDriver 一起使用,因为我已经对它们有点熟悉了。
我已将Selenium.WebDriver v3.141 和Selenium.WebDriver.ChromeDriver v73.0 添加到我的项目中,在那里设置Selenium。在 Windows 上本地运行良好。但是当我通过 Docker 运行它时,我得到:
The file /app/chromedriver does not exist. The driver can be downloaded at http://chromedriver.storage.googleapis.com/index.html
所以现在我想知道如何在 Docker 中使用 dotnet core 2.2 运行 Selenium + 单实例 Chrome(无需为我的目的设置 Selenium Grid)。
我想我需要创建自定义 Dockerfile:
- 安装 selenium、chrome 及其所有依赖项
- 安装
dotnet - 与我当前的 Dockerfile 一样来构建和运行我的应用程序
但我不太确定该怎么做。尤其是如何“嵌套”Dockerfile。 我应该在一个 Dockerfile 中做这个组合吗?我应该为 Selenium + ChromeDriver 创建 Dockerfile 并将其用作下一步的基础映像吗?
【问题讨论】:
-
你有想过这个吗?
-
如果我的回答对你来说不是一个完整的解决方案,请告诉我,我会调整它。我自己刚刚经历了两天。
标签: c# selenium docker .net-core selenium-chromedriver