无法访问容器外的文件夹
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
我做错了什么?
我用 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
我做错了什么?