2017-03-17 72 views
1

我想部署一個pypi服務器來託管我們的內部包。我一直拉着我的頭髮在這個碼頭集裝箱內的pypi的行爲。本地pypi服務器告訴我403註冊包時禁止

Dockerfile

FROM python:3.5 

RUN apt-get update 
RUN pip install --upgrade pip 
RUN pip install -U passlib pypiserver[cache]==1.2.0 
RUN mkdir -p /src/pypi/packages 

EXPOSE 8080 
ADD ./htpasswd /src/pypi/htpasswd 

CMD ["pypi-server", "-p 8080", "-P", "/src/pypi/htpasswd","/src/pypi/packages"] 

非常簡單的,對不對?妹妹到碼頭文件當然有一個名爲htpasswd包含用戶名/密碼對的文件。

如果我在本地(在Docker外部的環境中)完成了docker文件中定義的步驟,然後執行上面定義的命令,它將起作用!我可以根據它註冊套餐。

的PyPI運行Dockerfile外:

python setup.py register -r local 
running register 
running egg_info 
writing top-level names to ah_model.egg-info/top_level.txt 
writing dependency_links to ah_model.egg-info/dependency_links.txt 
writing ah_model.egg-info/PKG-INFO 
file foobar_utils.py (for module foobar_utils) not found 
reading manifest file 'ah_model.egg-info/SOURCES.txt' 
writing manifest file 'ah_model.egg-info/SOURCES.txt' 
running check 
Registering ah_model to http://localhost:8081 
Server response (200): OK 

但是,如果我建立並運行dockerfile,然後嘗試內部的註冊,這是行不通的:

的PyPI內泊塢窗運行:

python setup.py register -r local 
running register 
running egg_info 
writing top-level names to ah_model.egg-info/top_level.txt 
writing ah_model.egg-info/PKG-INFO 
writing dependency_links to ah_model.egg-info/dependency_links.txt 
file foobar_utils.py (for module foobar_utils) not found 
reading manifest file 'ah_model.egg-info/SOURCES.txt' 
writing manifest file 'ah_model.egg-info/SOURCES.txt' 
running check 
Registering ah_model to http://localhost:8080 
Server response (403): Forbidden 

有一些關於工作的PyPI是requi方式res在碼頭集裝箱內進行特殊調整?有沒有人自己試過這個?

UPDATE

看起來像搬運工容器偵聽端口8080:

[email protected]:/src/pypi# netstat -tulpn 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name 
tcp  0  0 0.0.0.0:8080   0.0.0.0:*    LISTEN  1/python3.5 
+0

它看起來像你想在端口8080使用該服務,這是不是在構建時運行的容器內。 –

+0

您是否說由於我配置它的方式,碼頭容器沒有在8080上偵聽?如果是這樣,請參閱上面的更新。該容器似乎在聽8080.當我指向它的瀏覽器時,我看到pypi的正​​常啓動頁面(歡迎來到pypiserver)。 – melchoir55

回答

相關問題