Skip to content

Get-AMD64-Docker-Images-Release #37

Get-AMD64-Docker-Images-Release

Get-AMD64-Docker-Images-Release #37

Workflow file for this run

name: Get-AMD64-Docker-Images-Release
on:
workflow_dispatch:
inputs:
docker_images:
description: '请填写docker镜像名称,多个用英文逗号分开'
required: true
default: 'ghcr.io/catthehacker/ubuntu:full-22.04'
jobs:
pull_and_package:
runs-on: ubuntu-22.04
steps:
- name: Maximize build space & set TMPDIR
run: |
echo "=== Before cleanup ==="
df -h
# 删除大文件和无用目录
docker rmi $(docker images -q) || true
sudo rm -rf /usr/share/dotnet /opt/ghc /usr/local/lib/android /usr/local/share/boost \
/opt/hostedtoolcache /usr/local/share/az* /usr/local/lib/node_modules || true
sudo apt-get purge -y azure-cli* docker* ghc* zulu* llvm* firefox google* dotnet* \
powershell* openjdk* mysql* php* mongodb* snap*
sudo apt-get autoremove -y --purge
sudo apt-get clean
# 把 /tmp 挪到空间更大的工作目录
export TMPDIR="$GITHUB_WORKSPACE/tmp"
mkdir -p "$TMPDIR"
echo "TMPDIR=$TMPDIR" >> $GITHUB_ENV
echo "=== After cleanup ==="
df -h
- name: Checkout repository
uses: actions/checkout@v4
- name: Pull Docker Images and Package
run: |
images="${{ github.event.inputs.docker_images }}"
IFS=',' read -r -a image_array <<< "$images"
for image in "${image_array[@]}"; do
docker pull "${image}" --platform "linux/amd64"
image_name="${image//\//_}"
image_name="${image_name//:/_}"
docker save "${image}" -o "${image_name}-amd64.tar"
gzip -c "${image_name}-amd64.tar" > "${image_name}-amd64.tar.gz"
rm "${image_name}-amd64.tar"
# 分割文件:每个分割块大小 1G,生成 image_name-amd64.tar.gz.partaa, partab ... 文件
split -b 1024m "${image_name}-amd64.tar.gz" "${image_name}-amd64.tar.gz.part"
rm "${image_name}-amd64.tar.gz"
done
- name: List generated split files (debug step)
run: |
echo "Prepared docker images split parts:"
find $GITHUB_WORKSPACE -name "*.part*"
release_name=$(TZ="Asia/Shanghai" date +'%Y-%m-%d %H:%M Build')
echo "RELEASE_NAME=$release_name" >> $GITHUB_ENV
- name: Create GitHub Release
uses: softprops/action-gh-release@master
with:
tag_name: DockerTarBuilder-AMD64
name: ${{ env.RELEASE_NAME }} for x86-64
body: |
[![Github](https://img.shields.io/badge/RELEASE:DockerTarBuilder-123456?logo=github&logoColor=fff&labelColor=green&style=for-the-badge)](https://www.bilibili.com/video/BV1EZ421M7mL) [![Github](https://img.shields.io/badge/国内加速站下载-FC7C0D?logo=github&logoColor=fff&labelColor=000&style=for-the-badge)](https://wkdaily.cpolar.top/archives/1)
### 使用说明:
分割文件下载后,执行:
```
cat alpine_latest-amd64.tar.gz.part* > alpine_latest-amd64.tar.gz
docker load -i alpine_latest-amd64.tar.gz
```
### 视频教学
[![Bilibili](https://img.shields.io/badge/Bilibili-123456?logo=bilibili&logoColor=fff&labelColor=fb7299)](https://www.bilibili.com/video/BV1yyq6YREdF)
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Docker images split parts as release assets
uses: softprops/action-gh-release@v2.1.0
with:
tag_name: DockerTarBuilder-AMD64
files: ${{ github.workspace }}/*.part*
token: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}