diff --git a/.github/workflows/build-aria2.yaml b/.github/workflows/build-aria2.yaml index 843f3df..94bac82 100644 --- a/.github/workflows/build-aria2.yaml +++ b/.github/workflows/build-aria2.yaml @@ -25,6 +25,7 @@ env: GHCR_ORG_NAME: ${{ github.event.inputs.ghcr_org_name || vars.GHCR_ORG_NAME || github.repository_owner }} GHCR_REGISTRY: ghcr.io ARIA2_VERSION: ${{ github.event.inputs.aria2_version || '1.37.0' }} + ALPINE_VERSION: ${{ vars.ALPINE_VERSION || '3.24' }} permissions: packages: write @@ -93,6 +94,8 @@ jobs: pull: true no-cache: true build-args: | + ALPINE_VERSION=${{ env.ALPINE_VERSION }} + LOONG_ALPINE_VERSION=${{ env.ALPINE_VERSION }} ARIA2_VERSION=${{ env.ARIA2_VERSION }} tags: | ${{ env.DOCKERHUB_ORG_NAME }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/build-base-image.yaml b/.github/workflows/build-base-image.yaml index 9f637a4..fcc94c1 100644 --- a/.github/workflows/build-base-image.yaml +++ b/.github/workflows/build-base-image.yaml @@ -11,11 +11,12 @@ on: env: IMAGE_NAME: ${{ github.event.inputs.image_name || 'openlist-base-image' }} - DOCKERHUB_ORG_NAME: ${{ vars.DOCKERHUB_ORG_NAME || 'openlistteam' }} - GHCR_ORG_NAME: ${{ vars.GHCR_ORG_NAME || 'openlistteam' }} + DOCKERHUB_ORG_NAME: ${{ vars.DOCKERHUB_ORG_NAME || github.repository_owner }} + GHCR_ORG_NAME: ${{ vars.GHCR_ORG_NAME || github.repository_owner }} GHCR_REGISTRY: ghcr.io RELEASE_PLATFORMS: 'linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/ppc64le,linux/riscv64' LOONG64_PLATFORM: 'linux/loong64' + ALPINE_VERSION: ${{ vars.ALPINE_VERSION || '3.24' }} permissions: packages: write @@ -69,7 +70,9 @@ jobs: push: true pull: true no-cache: true - build-args: ${{ matrix.build_arg }} + build-args: | + ${{ matrix.build_arg }} + ALPINE_VERSION=${{ env.ALPINE_VERSION }} tags: | ${{ env.DOCKERHUB_ORG_NAME }}/${{ env.IMAGE_NAME }} ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }} @@ -138,7 +141,9 @@ jobs: push: true pull: true no-cache: true - build-args: ${{ matrix.build_arg }} + build-args: | + ${{ matrix.build_arg }} + LOONG_ALPINE_VERSION=${{ env.ALPINE_VERSION }} tags: | ${{ env.DOCKERHUB_ORG_NAME }}/${{ env.IMAGE_NAME }} ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }} diff --git a/README.md b/README.md index a06e839..3ce8055 100644 --- a/README.md +++ b/README.md @@ -1 +1,36 @@ -# docker-library \ No newline at end of file +# docker-library + +## Fork 后的 GitHub Actions 配置 + +以下内容基于当前工作流整理: + +- [.github/workflows/build-base-image.yaml](.github/workflows/build-base-image.yaml) +- [.github/workflows/build-aria2.yaml](.github/workflows/build-aria2.yaml) + +### 必须配置(Secrets) + +| 配置项 | 作用 | 来源 | 备注 | +| --- | --- | --- | --- | +| DOCKERHUB_TOKEN | 登录 DockerHub 并推送镜像 | 两个 workflow 都使用 secrets.DOCKERHUB_TOKEN | 建议使用 DockerHub Access Token | + +### 建议配置(Repository Variables) + +| 配置项 | 作用 | build-base-image 默认值 | build-aria2 默认值 | +| --- | --- | --- | --- | +| DOCKERHUB_ORG_NAME | DockerHub 命名空间 | vars.DOCKERHUB_ORG_NAME -> github.repository_owner | workflow_dispatch 输入值 -> vars.DOCKERHUB_ORG_NAME -> github.repository_owner | +| GHCR_ORG_NAME | GHCR 命名空间 | vars.GHCR_ORG_NAME -> github.repository_owner | workflow_dispatch 输入值 -> vars.GHCR_ORG_NAME -> github.repository_owner | +| ALPINE_VERSION | 统一 Alpine 基础镜像版本(传递到 base/aria2 构建参数) | 3.24 | 3.24 | + +### 无需手动配置 + +| 配置项 | 说明 | +| --- | --- | +| GITHUB_TOKEN | GitHub Actions 自动提供,当前 workflow 已声明 permissions.packages: write | + +### Fork 后最小可用清单 + +1. 在仓库 Settings -> Secrets and variables -> Actions -> Secrets 新增 DOCKERHUB_TOKEN。 +2. 可选:在 Variables 新增 DOCKERHUB_ORG_NAME、GHCR_ORG_NAME、ALPINE_VERSION。 +3. 在 `Actions` 页面手动触发: + - Build Base Docker Image + - Build Aria2 Docker Image (Matrix) diff --git a/aria2/Dockerfile b/aria2/Dockerfile index a95c4b3..add0086 100644 --- a/aria2/Dockerfile +++ b/aria2/Dockerfile @@ -1,4 +1,5 @@ -FROM alpine:edge AS build +ARG ALPINE_VERSION=3.24 +FROM alpine:${ALPINE_VERSION} AS build ARG ARIA2_VERSION=1.37.0 LABEL org.opencontainers.image.authors="The OpenList Team" \ org.opencontainers.image.base.name="docker.io/openlistteam/openlist-aria2-standalone:${ARIA2_VERSION}" \ @@ -20,7 +21,7 @@ RUN cd /tmp/aria2-${ARIA2_VERSION} && \ make -j$(nproc) && \ make install -FROM alpine:edge +FROM alpine:${ALPINE_VERSION} ARG ARIA2_VERSION=1.37.0 LABEL org.opencontainers.image.authors="The OpenList Team" \ org.opencontainers.image.base.name="docker.io/openlistteam/openlist-aria2-standalone:${ARIA2_VERSION}" \ diff --git a/aria2/Dockerfile.loong64 b/aria2/Dockerfile.loong64 index 12ec67c..161fb0f 100644 --- a/aria2/Dockerfile.loong64 +++ b/aria2/Dockerfile.loong64 @@ -1,4 +1,5 @@ -FROM ghcr.io/loong64/alpine:edge AS build +ARG LOONG_ALPINE_VERSION=3.24 +FROM ghcr.io/loong64/alpine:${LOONG_ALPINE_VERSION} AS build ARG ARIA2_VERSION=1.37.0 LABEL org.opencontainers.image.authors="The OpenList Team" \ org.opencontainers.image.base.name="docker.io/openlistteam/openlist-aria2-standalone:${ARIA2_VERSION}" \ @@ -20,7 +21,7 @@ RUN cd /tmp/aria2-${ARIA2_VERSION} && \ make -j$(nproc) && \ make install -FROM ghcr.io/loong64/alpine:edge +FROM ghcr.io/loong64/alpine:${LOONG_ALPINE_VERSION} ARG ARIA2_VERSION=1.37.0 LABEL org.opencontainers.image.authors="The OpenList Team" \ org.opencontainers.image.base.name="docker.io/openlistteam/openlist-aria2-standalone:${ARIA2_VERSION}" \ diff --git a/base/Dockerfile b/base/Dockerfile index 1cdc094..1f4086f 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,4 +1,5 @@ -FROM docker.io/library/alpine:edge +ARG ALPINE_VERSION=3.24 +FROM docker.io/library/alpine:${ALPINE_VERSION} ARG TARGETPLATFORM ARG INSTALL_FFMPEG=false diff --git a/base/Dockerfile.loong64 b/base/Dockerfile.loong64 index d05420a..7447aab 100644 --- a/base/Dockerfile.loong64 +++ b/base/Dockerfile.loong64 @@ -1,4 +1,5 @@ -FROM ghcr.io/loong64/alpine:edge +ARG LOONG_ALPINE_VERSION=3.24 +FROM ghcr.io/loong64/alpine:${LOONG_ALPINE_VERSION} ARG TARGETPLATFORM ARG INSTALL_FFMPEG=false