fix: 更新 Dockerfile 版本至 v0.1.10,修正基礎映像為 debian:bookworm,並新增 APT 重試機制以改善 Multi-Arch Build 的穩定性
This commit is contained in:
parent
448011f7e2
commit
4d2a690bb9
2 changed files with 35 additions and 4 deletions
13
.github/workflows/docker-build-remote.yml
vendored
13
.github/workflows/docker-build-remote.yml
vendored
|
|
@ -295,6 +295,7 @@ jobs:
|
|||
echo "🔨 開始 Multi-Arch Docker Build"
|
||||
echo "========================================"
|
||||
echo "映像名稱: ${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
echo "同時標記: ${{ env.DOCKER_IMAGE_REPO }}:latest"
|
||||
echo "目標架構: linux/amd64, linux/arm64"
|
||||
echo ""
|
||||
|
||||
|
|
@ -304,6 +305,7 @@ jobs:
|
|||
WORKDIR="${{ env.REMOTE_WORKDIR }}"
|
||||
PROJECT="${{ env.PROJECT_NAME }}"
|
||||
IMAGE="${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
IMAGE_LATEST="${{ env.DOCKER_IMAGE_REPO }}:latest"
|
||||
BUILDER_NAME="multiarch-builder-${{ github.run_id }}"
|
||||
|
||||
echo "📂 進入專案目錄..."
|
||||
|
|
@ -321,9 +323,11 @@ jobs:
|
|||
|
||||
# Multi-arch build(只建構,不推送,載入到本地)
|
||||
# 使用 --progress=plain 顯示完整 log
|
||||
# 同時標記版本號和 latest
|
||||
if ! docker buildx build \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
-t "${IMAGE}" \
|
||||
-t "${IMAGE_LATEST}" \
|
||||
--progress=plain \
|
||||
. 2>&1; then
|
||||
|
||||
|
|
@ -387,6 +391,7 @@ jobs:
|
|||
WORKDIR="${{ env.REMOTE_WORKDIR }}"
|
||||
PROJECT="${{ env.PROJECT_NAME }}"
|
||||
IMAGE="${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
IMAGE_LATEST="${{ env.DOCKER_IMAGE_REPO }}:latest"
|
||||
BUILDER_NAME="multiarch-builder-${{ github.run_id }}"
|
||||
|
||||
echo "📂 進入專案目錄..."
|
||||
|
|
@ -395,15 +400,18 @@ jobs:
|
|||
echo ""
|
||||
echo "📤 執行 Docker Push..."
|
||||
echo "映像標籤: ${IMAGE}"
|
||||
echo "同時標記: ${IMAGE_LATEST}"
|
||||
echo ""
|
||||
|
||||
# 確保使用正確的 builder
|
||||
docker buildx use "${BUILDER_NAME}"
|
||||
|
||||
# 使用 buildx build --push 來推送 multi-arch 映像
|
||||
# 同時推送版本號和 latest
|
||||
if ! docker buildx build \
|
||||
--platform linux/amd64,linux/arm64 \
|
||||
-t "${IMAGE}" \
|
||||
-t "${IMAGE_LATEST}" \
|
||||
--push \
|
||||
--progress=plain \
|
||||
. 2>&1; then
|
||||
|
|
@ -426,6 +434,7 @@ jobs:
|
|||
echo ""
|
||||
echo "📦 映像已推送至 Docker Hub:"
|
||||
echo " ${IMAGE}"
|
||||
echo " ${IMAGE_LATEST}"
|
||||
echo ""
|
||||
echo "🏗️ 支援的架構:"
|
||||
echo " - linux/amd64"
|
||||
|
|
@ -533,7 +542,8 @@ jobs:
|
|||
echo "========================================"
|
||||
echo ""
|
||||
echo "📦 映像資訊:"
|
||||
echo " - 映像名稱: ${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
echo " - 版本標籤: ${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
echo " - Latest 標籤: ${{ env.DOCKER_IMAGE_REPO }}:latest"
|
||||
echo " - Docker Hub: https://hub.docker.com/r/${{ env.DOCKER_IMAGE_REPO }}/tags"
|
||||
echo ""
|
||||
echo "🏗️ 支援的架構:"
|
||||
|
|
@ -547,6 +557,7 @@ jobs:
|
|||
echo ""
|
||||
echo "📝 使用方式:"
|
||||
echo " docker pull ${{ env.DOCKER_IMAGE_REPO }}:${{ github.event.inputs.image_tag }}"
|
||||
echo " docker pull ${{ env.DOCKER_IMAGE_REPO }}:latest"
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "🎉 所有步驟已成功完成!"
|
||||
|
|
|
|||
26
Dockerfile
26
Dockerfile
|
|
@ -1,6 +1,6 @@
|
|||
# ==============================================================================
|
||||
# ConvertX-CN 官方 Docker Image
|
||||
# 版本:v0.1.9
|
||||
# 版本:v0.1.10
|
||||
# ==============================================================================
|
||||
#
|
||||
# 📦 Image 說明:
|
||||
|
|
@ -15,13 +15,24 @@
|
|||
#
|
||||
# 📊 Image 大小:約 5-7 GB
|
||||
#
|
||||
# ⚠️ Base Image:使用 debian:bookworm(穩定版)
|
||||
# - 確保 Multi-Arch (amd64/arm64) 構建穩定性
|
||||
# - 避免 trixie (testing) 套件同步不穩定問題
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
FROM debian:trixie-slim AS base
|
||||
FROM debian:bookworm-slim AS base
|
||||
LABEL org.opencontainers.image.source="https://github.com/pi-docket/ConvertX-CN"
|
||||
LABEL org.opencontainers.image.description="ConvertX-CN - 精簡版檔案轉換服務"
|
||||
WORKDIR /app
|
||||
|
||||
# 配置 APT 重試機制(解決 Multi-Arch Build 時的網路不穩定問題)
|
||||
RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::http::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::https::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::ftp::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'DPkg::Lock::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
# install bun
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
curl \
|
||||
|
|
@ -83,6 +94,14 @@ FROM base AS release
|
|||
#
|
||||
# ==============================================================================
|
||||
|
||||
# 配置 APT 重試機制(解決 Multi-Arch Build 時的網路不穩定問題)
|
||||
RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::http::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::https::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'Acquire::ftp::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'APT::Get::Assume-Yes "true";' >> /etc/apt/apt.conf.d/80-retries \
|
||||
&& echo 'DPkg::Lock::Timeout "120";' >> /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
# 階段 1:基礎系統工具
|
||||
RUN apt-get update --fix-missing && apt-get install -y --no-install-recommends \
|
||||
locales \
|
||||
|
|
@ -112,8 +131,9 @@ RUN apt-get update --fix-missing && apt-get install -y --no-install-recommends \
|
|||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 階段 4:圖像處理工具
|
||||
# 注意:bookworm 使用 imagemagick(版本 6),trixie 才有 imagemagick-7
|
||||
RUN apt-get update --fix-missing && apt-get install -y --no-install-recommends \
|
||||
imagemagick-7.q16 \
|
||||
imagemagick \
|
||||
inkscape \
|
||||
libheif-examples \
|
||||
libjxl-tools \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue