590 字
3 分钟
自建 APT 镜像源 教程 Tunasync CRON定时 多线程
源码
Github已经发布,README包含大部分说明 https://github.com/ChanningHe/tunasync-docker
自建原因
- 家里的服务器越来越多,基础镜像比如Debian之类的需要一个镜像,方便本地快速拉取。
- ProxmoxVE的非订阅源用户人数多,还是用起来不是那么快,加上集群机器多。
- TrueNAS编译的时候严重依赖他们的APT源,他们的APT源又奇慢,加载只有几百KB/s,换完本地后编译从2h+变成1h+,感知还是明显的。
- Tailscale源还是国内访问十分慢的源,用的机器镜像拉不下来,很多校园源又不做商业软件的源。
Compose示例
services: mirrors-nginx: image: nginx:latest container_name: mirrors-nginx ports: - "[Node-Port]:80" volumes: - $DOCKER_DATA/mirrors-nginx/nginx:/etc/nginx/conf.d - $DOCKER_DATA/mirrors-data:/mnt/Kiwi/Mirror/mirrors-data restart: always
aptsync-proxmox: environment: - PUID=[CHANGE-UID] - PGID=[CHANGE-GID] - APTSYNC_UNLINK=1 - APTSYNC_URL=http://download.proxmox.com/debian/pve - APTSYNC_DISTS=bookworm|pve-no-subscription|amd64| - CRON=20 23,6,12,20 * * * - TO=/data volumes: - $DOCKER_DATA/mirrors-data/proxmox:/data - $DOCKER_DATA/mirrors-logs/aptsync-proxmox:/log - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro image: channinghe/apt-sync:aria2c
aptsync-tailscale: environment: - PUID=[CHANGE-UID] - PGID=[CHANGE-GID] - APTSYNC_UNLINK=1 - APTSYNC_URL=https://pkgs.tailscale.com/stable/debian - APTSYNC_DISTS=bookworm|main|arm64 amd64|:bullseye|main|arm64 amd64| - CRON=20 23,6,12,18 * * * - TO=/data volumes: - $DOCKER_DATA/mirrors-data/tailscale:/data - $DOCKER_DATA/mirrors-logs/tailscale:/log - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro image: channinghe/apt-sync:aria2c
aptsync-debian: environment: - PUID=[CHANGE-UID] - PGID=[CHANGE-GID] - APTSYNC_UNLINK=1 - APTSYNC_URL=http://deb.debian.org/debian - APTSYNC_DISTS=bookworm|main contrib non-free non-free-firmware|amd64 arm64|:bullseye|main contrib non-free|amd64 arm64| - CRON="0 0,6,12,18 * * *" - TO=/data # 下载线程数 - PARALLEL_DOWNLOADS=8 volumes: - $DOCKER_DATA/mirrors-data/debian:/data - $DOCKER_DATA/mirrors-logs/aptsync-debian:/log image: channinghe/apt-sync:aria2cnetworks: {}
Nginx
Nginx的目的是公开网页,需要另外增加配置/etc/nginx/conf.d/default.conf
(容器内地址) 或者是$DOCKER_DATA/mirrors-nginx/nginx/default.conf
(主机地址)
location / { #你挂载进去的apt镜像数据的地方志 alias $DOCKER_DATA/mirrors-data/; autoindex on; autoindex_exact_size off; autoindex_localtime on; }
环境变量
变量名 | 描述 |
---|---|
APTSYNC_URL | 上游镜像URL |
APTSYNC_DISTS | 需要同步的发行版配置,格式为:发行版|组件|架构|下载路径 |
APTSYNC_UNLINK | 是否先删除目标文件,设置为1开启 |
- APTSYNC_DISTS,可以使用下面的工具批量转换
自建源地址
https://mirrors.homelabproject.cc/ (只是做个示例,在Cloudflare CDN前只是公开图一乐)
自建 APT 镜像源 教程 Tunasync CRON定时 多线程
https://www.homelabproject.cc/posts/infra/自建-apt-镜像源-教程-tunasync-cron定时-多线程/