├── .gitignore ├── Dockerfile.architecture ├── README.md ├── build.sh ├── docker-compose.yml ├── howto.md ├── kspeeder-install.sh └── prepare-dl.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.tar.gz 2 | dest 3 | 4 | -------------------------------------------------------------------------------- /Dockerfile.architecture: -------------------------------------------------------------------------------- 1 | # Dockerfile for KSpeeder based alpine 2 | # Copyright (C) 2020 - 2020 Xiaobao 3 | # Reference URL: 4 | # https://www.kspeeder.com/ 5 | 6 | FROM --platform=${TARGETPLATFORM} alpine:latest 7 | LABEL maintainer="Xiaobao " 8 | 9 | ARG TARGETPLATFORM 10 | ADD dest /dest 11 | RUN set -ex \ 12 | cd /dest && /dest/kspeeder-install.sh "${TARGETPLATFORM}" && cd / && rm -rf /dest 13 | 14 | EXPOSE 5443 15 | EXPOSE 5003 16 | 17 | VOLUME /kspeeder-data 18 | 19 | VOLUME /kspeeder-config 20 | 21 | ENV TZ=Asia/Shanghai 22 | 23 | ENV KSPEEDER_PORT=5443 24 | ENV KSPEEDER_AMDINPORT=5003 25 | ENV KSPEEDER_CONFIG=/kspeeder-config 26 | ENV KSPEEDER_DATA=/kspeeder-data 27 | 28 | CMD [ "/usr/bin/kspeeder"] 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker KSpeeder 2 | 3 | ## 项目简介 4 | Docker KSpeeder 是一个基于 Alpine Linux 的 KSpeeder 容器化部署方案。KSpeeder 是一个用于优化 Docker 镜像仓库访问的工具,它提供了智能镜像源选择、下载加速、状态监控等功能。本项目提供了多架构支持,可以在不同的硬件平台上运行。 5 | 6 | ## 功能特点 7 | - 基于 Alpine Linux 的轻量级容器 8 | - 支持多种硬件架构: 9 | - x86_64 (AMD64) 10 | - ARM v6 11 | - ARM v7 12 | - ARM64 (AArch64) 13 | - 提供 Docker Compose 支持 14 | - 支持数据持久化 15 | - 支持自定义配置 16 | 17 | ## 软件特性 18 | 19 | - Docker 镜像仓库代理服务 20 | - 支持 HTTPS 协议 21 | - 自动配置 Docker 镜像源 22 | - 支持证书自动获取和缓存 23 | - 支持多架构(AMD64/ARM64/ARM) 24 | - 智能镜像源选择和自动切换 25 | - 实时下载速度监控 26 | - 可视化状态监控界面 27 | 28 | - 限速文件服务器 29 | - 支持可配置的带宽限制 30 | - 基于目录的文件服务 31 | - HTTP 协议支持 32 | 33 | - 网络优化 34 | - 支持 HTTP/2 协议 35 | - 支持自定义超时设置 36 | - 内置连接池管理 37 | - 异步读取优化 38 | 39 | ## 快速开始 40 | 41 | ### 使用 Docker Compose 42 | 1. 创建 docker-compose.yml 文件: 43 | ```yaml 44 | services: 45 | kspeeder: 46 | image: linkease/kspeeder:latest 47 | container_name: kspeeder 48 | ports: 49 | - "5443:5443" 50 | - "5003:5003" 51 | volumes: 52 | - ./kspeeder-data:/kspeeder-data 53 | - ./kspeeder-config:/kspeeder-config 54 | restart: unless-stopped 55 | ``` 56 | 57 | 2. 启动服务: 58 | ```bash 59 | docker-compose up -d 60 | ``` 61 | 62 | ### 配置说明 63 | - 端口配置: 64 | - 5443:KSpeeder 主服务端口 65 | - 5003:管理端口 66 | 67 | - 数据卷: 68 | - /kspeeder-data:数据存储目录 69 | - /kspeeder-config:配置文件目录 70 | 71 | ## 使用说明 72 | - 配置docker镜像服务地址 73 | - 镜像地址:https://registry.linkease.net:5443 74 | - 重启docker服务 75 | - 验证 76 | ```bash 77 | 78 | docker info | grep "registry.linkease.net" 79 | 80 | ``` 81 | ## 镜像地址 82 | 官方 Docker Hub 镜像:[linkease/kspeeder](https://hub.docker.com/r/linkease/kspeeder/) 83 | 84 | ## 开发构建 85 | 86 | 如果你需要自行构建镜像,可以使用以下命令: 87 | 88 | ```bash 89 | # 准备多架构构建环境 90 | docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 91 | docker buildx create --name mybuilder --driver docker-container 92 | docker buildx use mybuilder 93 | 94 | # 构建并推送多架构镜像 95 | docker buildx build --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 \ 96 | -t linkease/kspeeder:latest -f ./Dockerfile.architecture --push . 97 | ``` 98 | 99 | ## 注意事项 100 | - 首次启动时,请确保配置文件目录和数据目录具有正确的权限 101 | - 如需修改端口映射,请同时更新容器的环境变量配置 102 | - 建议使用 `docker-compose` 进行部署和管理 103 | 104 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker buildx build --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 -t linkease/kspeeder:0.2.5 -f ./Dockerfile.architecture --push . 4 | 5 | #docker buildx build \ 6 | # --build-arg "HTTP_PROXY=http://127.0.0.1:11282/" \ 7 | # --build-arg "HTTPS_PROXY=http://127.0.0.1:11282/" \ 8 | # --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 -t linkease/kspeeder:latest -f ./Dockerfile.architecture --push . 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | 2 | services: 3 | kspeeder: 4 | build: 5 | context: . 6 | dockerfile: Dockerfile.architecture 7 | container_name: kspeeder 8 | ports: 9 | - "5443:5443" 10 | - "5003:5003" 11 | volumes: 12 | - ./kspeeder-data:/kspeeder-data 13 | - ./kspeeder-config:/kspeeder-config 14 | restart: unless-stopped -------------------------------------------------------------------------------- /howto.md: -------------------------------------------------------------------------------- 1 | #kms docker_linkease 2 | 3 | ## prepare 4 | 5 | ``` 6 | docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 7 | docker buildx create --name mybuilder --driver docker-container 8 | docker buildx use mybuilder 9 | docker buildx ls 10 | ``` 11 | 12 | ## build 13 | 1. docker buildx build --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 -t linkease/linkease -o type=local,dest=~/.docker -f ./Dockerfile.architecture . 14 | 2. docker buildx build --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64 -t linkease/linkease --push -f ./Dockerfile.architecture . 15 | 16 | ## update version 2 17 | 18 | ``` 19 | sudo apt-get install qemu-user-static -y 20 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 21 | docker buildx rm mybuilder 22 | docker buildx create --name mybuilder --driver docker-container --use 23 | docker buildx inspect --bootstrap 24 | ``` 25 | 26 | other from network 27 | 28 | ``` 29 | #https://medium.com/@srivathsalachary/on-ubuntu-if-you-get-the-below-error-follow-these-steps-7c764837a181 30 | sudo apt-get install qemu-user-static -y 31 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes i 32 | docker buildx rm multibuilder 33 | docker buildx create --name multibuilder 34 | docker buildx ls 35 | docker buildx inspect multibuilder 36 | docker buildx inspect multibuilder --bootstrap 37 | docker buildx use multibuilder 38 | docker ps -a 39 | docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t /hello --push . 40 | ``` 41 | 42 | TODO 43 | 44 | sudo systemctl restart docker 45 | 46 | fixed it ! 47 | 48 | docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 49 | 50 | -------------------------------------------------------------------------------- /kspeeder-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | PLATFORM=$1 4 | if [ -z "$PLATFORM" ]; then 5 | KSPEEDER_FILE="iStoreEnhance.x86_64" 6 | else 7 | case "$PLATFORM" in 8 | linux/386) 9 | KSPEEDER_FILE="" 10 | ;; 11 | linux/amd64) 12 | KSPEEDER_FILE="iStoreEnhance.x86_64" 13 | ;; 14 | linux/arm/v6) 15 | KSPEEDER_FILE="iStoreEnhance.arm" 16 | ;; 17 | linux/arm/v7) 18 | KSPEEDER_FILE="iStoreEnhance.arm" 19 | ;; 20 | linux/arm64|linux/arm64/v8) 21 | KSPEEDER_FILE="iStoreEnhance.aarch64" 22 | ;; 23 | linux/ppc64le) 24 | KSPEEDER_FILE="" 25 | ;; 26 | linux/s390x) 27 | KSPEEDER_FILE="" 28 | ;; 29 | *) 30 | KSPEEDER_FILE="" 31 | ;; 32 | esac 33 | fi 34 | [ -z "${KSPEEDER_FILE}" ] && echo "Error: Not supported OS Architecture" && exit 1 35 | 36 | cp /dest/${KSPEEDER_FILE} /usr/bin/kspeeder 37 | 38 | chmod +x /usr/bin/kspeeder 39 | 40 | -------------------------------------------------------------------------------- /prepare-dl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | VER=0.2.5 6 | PWD=`pwd` 7 | rm -rf dest.tar.gz dest 8 | mkdir -p dest 9 | 10 | wget -O dest.tar.gz https://fw0.koolcenter.com/binary/iStoreEnhance/iStoreEnhance-binary-${VER}.tar.gz 11 | tar --strip-components=1 -zxf ./dest.tar.gz -C ./dest/ 12 | cp ./kspeeder-install.sh ./dest/ 13 | rm -f ./dest.tar.gz 14 | 15 | --------------------------------------------------------------------------------