相关疑难解决方法(0)

如何在docker容器中运行selenium chrome驱动程序?

TL;博士

如何安装所有组件以在docker容器中运行Selenium?


我从这张图片开始:

FROM microsoft/aspnetcore-build:2 AS builder
WORKDIR /source

COPY . .
RUN dotnet restore
RUN dotnet build
ENTRYPOINT ["dotnet", "run"]
Run Code Online (Sandbox Code Playgroud)

我该如何制作它以便我可以启动并使用无头Chrome驱动程序:

ChromeOptions options = new ChromeOptions();
options.AddArgument("--headless");
options.AddArgument("--disable-gpu");
var driverPath = Path.GetFullPath(Path.Combine(environment.ContentRootPath, "bin/Debug/netcoreapp2.0"));
return new ChromeDriver(driverPath, options, TimeSpan.FromSeconds(60));
Run Code Online (Sandbox Code Playgroud)

在docker容器内?


我试过了什么

安装Chrome驱动程序

chromedriver通过Selenium.WebDriver.ChromeDriverNuGet包分发.

安装Chrome

在安装了Google Chrome的Mac OS X上,当前设置工作正常.

我试图添加这些行:

RUN apt-get update && apt-get -y install libglib2.0-dev libxi6 libnss3-dev
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ …
Run Code Online (Sandbox Code Playgroud)

c# asp.net selenium docker asp.net-core

14
推荐指数
2
解决办法
3164
查看次数

使用--no-sandbox运行无头Chrome /木偶游戏

背景

我构建了一个在本地主机上使用Puppeteer的应用程序。现在,我试图将其部署到Debian环境中,运行Puppeteer的脚本正在超时。经过研究,我意识到这是一个普遍的问题。大多数Debian环境缺少运行Chromium所需的依赖项。

问题

我在这里找到了一些推荐的方法来使用Docker运行应用程序。

我可以使用Docker运行应用程序,但是将Chrome特定的数据添加到Docker文件后,我会遇到一些错误。

无法移动到新名称空间:支持PID名称空间,支持网络名称空间,但失败:errno =不允许操作

建议以Docker文件中的用户身份运行该应用程序。但是,当我添加该用户时,该用户会遇到上述错误。

然后,当我尝试以root用户身份运行该应用程序时,出现了一个新错误,

不支持以不带--no-sandbox的根用户身份运行。

尽管不建议这样做,但我还是希望运行该应用程序,甚至--no-sandbox可以查看其是否正常运行。

我一直在运行这样的应用程序,

docker run -p 3000:3000 user/app-name
Run Code Online (Sandbox Code Playgroud)

Docker文件

FROM ubuntu:16.04

# Application parameters and variables
ENV NODE_ENV=production
ENV PORT=3000
ENV Root_Dir /
ENV application_directory /usr/src/app
ENV font_directory /usr/share/fonts/noto

# Configuration for Chrome
ENV CONNECTION_TIMEOUT=60000
ENV CHROME_PATH=/usr/bin/google-chrome

RUN mkdir -p $application_directory
RUN mkdir -p $font_directory

# Dependencies needed for packages downstream
RUN apt-get update && apt-get install -y \
  apt-utils \
  unzip \
  fontconfig \
  locales \
  gconf-service …
Run Code Online (Sandbox Code Playgroud)

chromium docker puppeteer

5
推荐指数
4
解决办法
9018
查看次数

标签 统计

docker ×2

asp.net ×1

asp.net-core ×1

c# ×1

chromium ×1

puppeteer ×1

selenium ×1