github docker脚本 附带释放磁盘空间
1 |
|
空间不够
name: DockerHub CI2
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: '可选: 发布标签 (默认为当前日期)'
required: false
env:
DOCKERHUB_REPO: chatteohr/ktransformers
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Before freeing up disk space
run: |
echo "Before freeing up disk space"
echo "=============================================================================="
df -hT
echo "=============================================================================="
- name: "Optimize Disk Space"
uses: "hugoalh/disk-space-optimizer-ghaction@v0.8.1"
with:
operate_sudo: "True"
general_include: ".+"
general_exclude: |-
^GCC$
^G\+\+$
Clang
LLVM
docker_include: ".+"
docker_prune: "True"
docker_clean: "True"
apt_prune: "True"
apt_clean: "True"
homebrew_prune: "True"
homebrew_clean: "True"
npm_prune: "True"
npm_clean: "True"
os_swap: "True"
- name: Freeing up disk space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 2048
swap-size-mb: 1
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'false'
- name: Move Docker data directory
run: |
# 停止 Docker 服务
sudo systemctl stop docker
# 创建新的目录并将已有数据同步到新位置(为了安全,先同步现有数据)
sudo mkdir -p $GITHUB_WORKSPACE/docker
sudo rsync -avz /var/lib/docker/ $GITHUB_WORKSPACE/docker
# 备份原目录并做软连接
sudo rm -rf /var/lib/docker
sudo ln -s $GITHUB_WORKSPACE/docker /var/lib/docker
# 重启 Docker
sudo systemctl start docker
- name: Check disk usage after
run: df -h
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set tags
id: set_tags
run: |
if [ -z "${{ github.event.inputs.tag }}" ]; then
echo "tags=${{ env.DOCKERHUB_REPO }}:latest" >> $GITHUB_OUTPUT
else
# 使用 here-doc 方式输出多行内容到输出变量
echo "tags<<EOF" >> $GITHUB_OUTPUT
echo "${{ env.DOCKERHUB_REPO }}:latest" >> $GITHUB_OUTPUT
echo "${{ env.DOCKERHUB_REPO }}:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
fi
-
name: Build and push
uses: docker/build-push-action@v6
with:
push: true
platforms: |
linux/amd64
# linux/arm64
# linux/arm/v7
tags: |
${{ steps.set_tags.outputs.tags }}
- name: Free up disk space complete
run: |
echo "Free up disk space complete"
echo "=============================================================================="
df -hT
echo "=============================================================================="
可以使用这个脚本来释放磁盘空间,这个脚本会释放一些磁盘空间,可以选择挂载位置。