【发布时间】:2016-05-20 15:21:39
【问题描述】:
我正在尝试创建一个本地 pip2pi 存储库,然后通过 Nginx 提供它。我已经成功创建了 repo,并且在我的本地机器上拥有了我想要的所有轮子文件。它们的位置如下:
/home/user/code/misc/pip-packs/simple
\
---index.html
--- amqp
\
-------- index.html
-------- amqp-1.4.6-py2-none-any.whl
--- django
\
-------- index.html
-------- Django-1.9.3-py2.py3-none-any.whl
... ETC
现在提供我在 docker 上使用 Nginx 的文件,只需使用官方的 Nginx docker 映像。我像这样运行容器:
docker run --name pypi-nginx -p 80:80 \
-v /home/user/code/misc/pip-packs/simple:/usr/share/nginx/html \
-d nginx
我可以打开 localhost 并在根目录 (/) 中查看 index.html,然后我可以单击一个链接,例如amqp 然后获取 amqp-1.4.6-py2-none-any.whl 文件的链接。当我单击链接时,我希望启动下载。但是我从 Nginx 得到一个 404 页面。
文件肯定在那里,我可以运行:
docker exec -it pypi-nginx /bin/bash
然后 ls 和 /usr/share/nginx/html 目录,查看来自 voulume 的所有文件。
我还可以在本地运行 pip install amqp-1.4.6-py2-none-any.whl,所以我知道这是一个实际的轮子文件。
Nginx官方的日志错误是:
2016/05/20 14:48:01 [error] 7#7: *1 open() "/usr/share/nginx/html/funcsigs/funcsigs-0.4-py2.py3-none-any.whl" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /funcsigs/funcsigs-0.4-py2.py3-none-any.whl HTTP/1.1", host: "localhost", referrer: "http://localhost/funcsigs/"
但它为每个 firectory 中的索引文件提供服务。我使用的 nginx 配置文件是容器中的标准配置文件。如有必要,我可以发布这些。
【问题讨论】:
-
是否存在潜在的文件权限问题?
index.html和.whl文件是否具有相同的所有者和权限?