mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-06-12 03:00:09 +08:00
README 的 docker run 只挂了 -v …:/app/backend/data(仅媒体缓存),但 SQLite 库在 /app/backend/bili_note.db、笔记在 /app/backend/note_results 都不在该卷下 → 用户删容器重建(如 docker pull 升级镜像)会丢失 LLM 供应商配置和全部笔记历史。 - Dockerfile.complete:DATABASE_URL 重定向到 /app/backend/data/bili_note.db、 NOTE_OUTPUT_DIR 改到 data/note_results,并预建 /app/backend/data 目录; 两条 supervisord environment 行同步(兜底默认值 + %(ENV_*)s 透传)。 - README:docker run 改挂 data(库+笔记)/ config(供应商·Cookie·转写配置)/ static(截图)/ models(模型缓存,可选)四个数据卷,并警告不要挂整个 /app/backend(命名卷会固化镜像内代码,导致 docker pull 升级不生效)。 - docker-build.yml:同步发布说明里 echo 的 run 命令。 截图仍留在 /app/backend/static(static_dir 硬编码服务,不能重定向),单独挂卷。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
77 lines
2.3 KiB
YAML
77 lines
2.3 KiB
YAML
name: Build and Publish Docker Image
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
REGISTRY: ghcr.io
|
|
IMAGE_NAME: ${{ github.repository }}
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Log in to GitHub Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ env.REGISTRY }}
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Extract metadata (tags, labels)
|
|
id: meta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
tags: |
|
|
type=semver,pattern={{version}}
|
|
type=semver,pattern={{major}}.{{minor}}
|
|
type=sha,prefix=
|
|
type=raw,value=latest,enable={{is_default_branch}}
|
|
|
|
- name: Build and Push Docker Image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
file: Dockerfile.complete
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
platforms: linux/amd64,linux/arm64
|
|
|
|
- name: Generate Usage Instructions
|
|
run: |
|
|
echo "=========================================="
|
|
echo "Docker Image Published!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Pull the image:"
|
|
echo " docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
|
|
echo ""
|
|
echo "Run the container:"
|
|
echo " docker run -d -p 80:80 \\"
|
|
echo " -v bilinote-data:/app/backend/data \\"
|
|
echo " -v bilinote-config:/app/backend/config \\"
|
|
echo " -v bilinote-static:/app/backend/static \\"
|
|
echo " -v bilinote-models:/app/backend/models \\"
|
|
echo " --name bilinote \\"
|
|
echo " ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
|
|
echo ""
|
|
echo "Access the application at: http://localhost"
|
|
echo "=========================================="
|