无法访问容器外部的文件夹



我用C#编写了一个应用程序,该应用程序需要使用chrome之类的浏览器实例。我使用来固定应用程序和运行

sudo docker run -d --name myapp --restart=always -e BROWSER_PATH=/usr/bin/chromium-browser myimage

应用程序启动正确,但我得到以下错误:

未处理的异常:系统。AggregateException:出现一个或多个错误。(启动浏览器失败!可执行文件的路径不存在(--->系统IO.FileNotFoundException:无法启动浏览器!可执行文件的路径不存在

似乎Docker容器无法访问位于容器外部的浏览器文件夹。

我使用puppeteer-sharp来管理浏览器,所以抛出错误的行是愚蠢的:

var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,
ExecutablePath = Environment.GetEnvironmentVariable("BROWSER_PATH"),
});

正如您所看到的,我正在从一个环境变量中读取BROWSER_PATH

我该怎么解决这个问题?

谢谢。

更新:

我尝试使用按照建议安装音量

sudo docker run -d --name myapp --restart=always -e BROWSER_PATH=/usr/bin/chromium-browser --v "/$(pwd)/usr/bin/chromium-browser:/usr/bin/chromium-browser" myimage

但我得到了同样的错误:

无法启动浏览器!可执行文件的路径不存在

我做错了什么?

您需要将它们装载到容器中。https://flaviocopes.com/docker-access-files-outside-container/

相关内容

  • 没有找到相关文章

最新更新