为你修改后的Shiro构建Docker镜像

前言

Shiro 是 MixSpace 的前端主题（社区版），前端主题代码是开源的，有些用户会对它做一些修改以更加符合自己的使用需求，如果说你想要修改以后还能使用 Docker 镜像而非 Docker 构建的方式部署到自己的服务器，那么今天这篇文章就是为你准备的。

为什么不是...

Docker 构建

Docker 构建会使用大量的服务器资源，这对于配置较低（低于 2G 内存）的云服务器来说这是比较困难的，基本上会导致服务器爆内存假死。

云函数部署

你可以选择这样干，在你的站点流量不是很大的时候，Vercel/Netlify 等云函数平台提供的免费额度足够你托管自己的 Shiro，但是如果你想要部署它到中国大陆地区的服务器或者有流量更大的需求，那么云函数平台的额度就显得不大够用了。

选择

我们这里选择使用 Github 官方的镜像库来存放我们的镜像，在国内拉取镜像可使用私有镜像加速服务，比如 Geekery 提供的DockerHub 镜像加速，可拉取私有仓库镜像。

步骤

Fork 仓库

首先打开Innei/Shiro官方库，Fork 一份到你自己账号下。

删除部分文件

我们直接删除掉仓库根目录下的.github这个文件夹，你不需要使用官方的工作流。

魔改

你可以对仓库开始进行你的需求魔改代码。

新建工作流

在仓库的.github/workflows目录下新建一个 yml 文件，名字随意，代码如下：

Copy
name: Docker Build
on:
push:
branches:
- 'main'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: true
tags: ghcr.io/innei/shiro:latest

你只需要修改最下方Build and push步骤中的tag从ghcr.io/innei/shiro:latest修改为你自己认为合适的名称即可，注意其中不要有任何大写字符，为了好记尽量选择使用个人 Github 用户名小写代替innei作为镜像命名空间。

保存工作流文件，等待运行完毕，你应该可以在仓库侧边Packages或者个人 Github 账号主页的Package里找到镜像文件。

使用

参考它提供的拉取方式，在服务器使用docker pull指令拉取镜像即可。

此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.sotkg.com/posts/site/shiro-docker-deployment