部署pypi私服,加快python构建

用docker创建私服

使用docker compose 启动私服 (/packages 为外挂的缓存目录)

services:
  pypi:
    image: pypiserver/pypiserver:v2.1.1
    environment:
      - PYTHONUNBUFFERED=1
    network_mode: host
    volumes:
      - /packages:/data/packages
    command: --fallback-url https://pypi.tuna.tsinghua.edu.cn/simple /data/packages

创建shell脚本拉取依赖

在 /packages 目录里面创建一个requirements.txt文件里面写依赖包。

# cat requirements.txt
setuptools==70.3.0
certifi==2024.7.4

把下面pull.sh也放到/packages 里面。

#!/bin/bash
pip install --upgrade pip -i https://pypi.mirrors.ustc.edu.cn/simple/
for i in `cat ../requirements.txt`;do
  pip download -d . -i https://pypi.tuna.tsinghua.edu.cn/simple/ $i
done

把包放到私服里面

启动一个临时容器,镜像为构建时的基础镜像,保持环境一致。

docker run --rm -it -v /packages:/packages -w /packages python:3.11.9-bookworm /bin/bash pull.sh

构建时使用私服地址

FROM python:3.11.9-bookworm
# 设置默认时区
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone 
  
# 防止Python缓冲stdout和stderr,以避免出现以下情况
# 由于缓冲,应用程序在没有发出任何日志的情况下崩溃。
ENV PYTHONUNBUFFERED=1

# 复制应用
COPY . /app/
WORKDIR /app

# 安装依赖包
RUN pip install -i http://192.168.1.9:8080/simple --trusted-host 192.168.1.9 -r requirements.txt

# 暴露容器端口
EXPOSE 80

# 运行应用程序
CMD [ "/bin/bash", "-c", "python server.py" ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值