通过docker compose构建mlflow时的Nginx身份验证问题
我正在尝试在谷歌云平台(GCP)上为谷歌云运行(GCR)对接PostgreSQL和nginx配置 然而,在将任何东西部署到GCP之前,我想让本地部署工作起来。我找到了一本详细介绍环境设置过程的指南。遵循了指南(不包括SQL部分),我可以在通过docker compose构建mlflow时的Nginx身份验证问题,docker,debugging,nginx,google-cloud-platform,mlflow,Docker,Debugging,Nginx,Google Cloud Platform,Mlflow,我正在尝试在谷歌云平台(GCP)上为谷歌云运行(GCR)对接PostgreSQL和nginx配置 然而,在将任何东西部署到GCP之前,我想让本地部署工作起来。我找到了一本详细介绍环境设置过程的指南。遵循了指南(不包括SQL部分),我可以在localhost:80上看到mlflow UI,因为nginx将端口80上的流量重定向到5000。为了添加身份验证,我发现我可以使用etc/nginx/目录中的sudohtpasswd-c.htpasswd来添加身份验证,然后添加 location \ {
localhost:80
上看到mlflow UI,因为nginx将端口80上的流量重定向到5000。为了添加身份验证,我发现我可以使用etc/nginx/
目录中的sudohtpasswd-c.htpasswd
来添加身份验证,然后添加
location \ {
auth_basic "Private Property";
auth_basic_user_file .htpasswd;
}
转到nginx.conf
(本例中为mlflow.conf
)使其在线显示。问题是,当我现在进入localhost:80
并输入我的用户名/密码时,我会继续看到
[error] 6#6: *1 open() "/etc/nginx/.htpasswd" failed (2: No such file or directory)
在docker中,当日志被打印到终端时,docker将它们组合起来,因此我无法在localhost:80上看到mlflow UI(一个空白屏幕或nginx 403错误)
现在,我看了其他几篇文章(如和),在我看来nginx没有读取etc/nginx/
目录文件中.htpasswd
的正确权限,或者文件的路径不正确,即路径必须引用nginx.conf
文件
尽管我针对数据科学文件对上述内容进行了更正,但问题仍然存在。我在这件事上耽搁了一段时间。发生这种情况的具体原因是什么
编辑:
以下是我的目录结构,以防有所帮助:
mlflow-docker/:
mlflow/:
Dockerfile
nginx/:
Dockerfile
mlflow.conf
nginx.conf
docker-compose.yml
您需要在容器的文件系统中添加.htpasswd文件
在项目的nginx文件夹中生成密码文件
sudo htpasswd -c .htpasswd sammy
将密码文件复制到nginx容器的目录。在nginx dockerfile中添加以下行
COPY .htpasswd /etc/nginx
你能分享nginx Dockerfile吗?如果你在《走向数据科学》一文中向下滚动到“集装箱化”,你将能够看到nginx和mlflow dockerfiles。这是一篇文章。