前言#
Shiro 是 MixSpace 的前端主題(社區版),前端主題代碼是開源的,有些用戶會對它做一些修改以更加符合自己的使用需求,如果說你想要修改以後還能使用 Docker 鏡像而非 Docker 構建的方式部署到自己的伺服器,那麼今天這篇文章就是為你準備的。
為什麼不是...#
Docker 構建#
Docker 構建會使用大量的伺服器資源,這對於配置較低(低於 2G 內存)的雲伺服器來說這是比較困難的,基本上會導致伺服器爆內存假死。
雲函數部署#
你可以選擇這樣幹,在你的站點流量不是很大的時候,Vercel/Netlify 等雲函數平台提供的免費額度足夠你托管自己的 Shiro,但是如果你想要部署它到中國大陸地區的伺服器或者有流量更大的需求,那麼雲函數平台的額度就顯得不大夠用了。
選擇#
我們這裡選擇使用 Github 官方的鏡像庫來存放我們的鏡像,在國內拉取鏡像可使用私有鏡像加速服務,比如 Geekery 提供的DockerHub 鏡像加速,可拉取私有倉庫鏡像。
步驟#
Fork 倉庫#
首先打開Innei/Shiro官方庫,Fork 一份到你自己帳號下。
刪除部分文件#
我們直接刪掉倉庫根目錄下的.github
這個文件夾,你不需要使用官方的工作流。
魔改#
你可以對倉庫開始進行你的需求魔改代碼。
新建工作流#
在倉庫的.github/workflows
目錄下新建一個 yml 文件,名字隨意,代碼如下:
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