docker运行pypiserver,并用nginx代理

2023-04-22  本文已影响0人  JOHY119

安装docker

部署pypiserver

docker run -d --name pypiserver --restart=always -p 8040:8080 -v ~/pypiserver/packages:/data/packages -v ~/pypiserver/.htpasswd:/data/.htpasswd  pypiserver/pypiserver:latest -P .htpasswd packages --hash-algo sha256

指令说明

auth

pypiserver默认使用htpaswd创建的密码文件进行验证,创建指令如下

htpasswd -sc .htpasswd <需要的用户名>

.htpasswd为密码文件,新创建要加-c参数

创建后在docker中用-P指定密码文件,后跟需要保护的目录,注意默认工作目录是/data

挂载

将密码文件挂载至docker内的/data/.htpasswd,将包存储目录挂载至/data/packages

hash

pypiserver默认hash算法为md5,poetry工具使用sha256,所以指定--hash-algo为sha256

nginx代理

location / {
  proxy_pass http://127.0.0.1:8040/;
}
server {
  location /pypi/ {
      proxy_set_header  X-Forwarded-Host $host:$server_port/pypi;
      proxy_set_header  X-Forwarded-Proto $scheme;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header  X-Real-IP $remote_addr;
      proxy_pass        http://127.0.0.1:8040/;
  }
}
上一篇 下一篇

猜你喜欢

热点阅读