无法访问容器外的文件夹

Cannot access to folder outside a container

我用 C# 编写了一个应用程序,它需要使用像 chrome 这样的浏览器实例。我使用以下方法对应用程序和 运行 进行了 docker 化:

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

应用程序正常启动,但出现以下错误:

Unhandled Exception: System.AggregateException: One or more errors occurred. (Failed to launch browser! path to executable does not exist) ---> System.IO.FileNotFoundException: Failed to launch browser! path to executable does not exist

似乎 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

但我得到同样的错误:

Failed to launch browser! path to executable does not exist

我做错了什么?

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