通过 docker-compose 构建 mlflow 时出现 Nginx 身份验证问题
Nginx authentication issues when building mlflow through docker-compose
我正在尝试在 Google 云平台 (GCP) 上使用 Google 云 运行 (GCR) 的 PostgreSQL 和 nginx 配置对 mlflow 进行 docker 化。
然而,在将任何东西部署到 GCP 之前,我想让本地部署正常工作。我发现 this guide that details the process of setting up the environment. Having followed the guide (excluding the SQL part), I can see the mlflow UI on localhost:80
as nginx redirects traffic on port 80 to 5000. To add authentication, I found here 我可以使用 etc/nginx/
目录中的 sudo htpasswd -c .htpasswd <username>
然后添加
location \ {
auth_basic "Private Property";
auth_basic_user_file .htpasswd;
}
到 nginx.conf
(或本例中的 mlflow.conf
)以使其显示在网上。问题是,当我去 localhost:80
now 并输入我的 username/password 时,我继续看到
[error] 6#6: *1 open() "/etc/nginx/.htpasswd" failed (2: No such file or directory)
在 docker-compose up
日志中打印到终端,因此 我无法在 UI 上看到 mlflow UI =14=](空白屏幕或 nginx 403 错误)。
现在,我查看了其他几篇文章(例如 this one and this one),在我看来 nginx 没有正确的权限来读取 .htpasswd
中的 etc/nginx/
目录文件或文件路径不正确,即路径必须参考 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
我正在尝试在 Google 云平台 (GCP) 上使用 Google 云 运行 (GCR) 的 PostgreSQL 和 nginx 配置对 mlflow 进行 docker 化。
然而,在将任何东西部署到 GCP 之前,我想让本地部署正常工作。我发现 this guide that details the process of setting up the environment. Having followed the guide (excluding the SQL part), I can see the mlflow UI on localhost:80
as nginx redirects traffic on port 80 to 5000. To add authentication, I found here 我可以使用 etc/nginx/
目录中的 sudo htpasswd -c .htpasswd <username>
然后添加
location \ {
auth_basic "Private Property";
auth_basic_user_file .htpasswd;
}
到 nginx.conf
(或本例中的 mlflow.conf
)以使其显示在网上。问题是,当我去 localhost:80
now 并输入我的 username/password 时,我继续看到
[error] 6#6: *1 open() "/etc/nginx/.htpasswd" failed (2: No such file or directory)
在 docker-compose up
日志中打印到终端,因此 我无法在 UI 上看到 mlflow UI =14=](空白屏幕或 nginx 403 错误)。
现在,我查看了其他几篇文章(例如 this one and this one),在我看来 nginx 没有正确的权限来读取 .htpasswd
中的 etc/nginx/
目录文件或文件路径不正确,即路径必须参考 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