37 lines
1.1 KiB
YAML
37 lines
1.1 KiB
YAML
name: Docker Build and Push
|
|
|
|
# 仅 main 分支 push 触发, 其他分支不触发
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build-image:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: https://gitea.com/actions/checkout@v4
|
|
|
|
- name: Build Docker image
|
|
# DATABASE_URL 仅在 prisma generate 阶段需要, 可用任何合法占位串
|
|
run: docker build -t iboard:latest --build-arg DATABASE_URL=mysql://build:build@127.0.0.1:3306/build .
|
|
|
|
- name: List images
|
|
run: docker images
|
|
|
|
- name: Remove old container
|
|
run: docker rm -vf iboard || true
|
|
|
|
- name: Recycle container
|
|
run: docker system prune --volumes -f
|
|
|
|
- name: Run container
|
|
# DATABASE_URL 通过 gitea Actions secret 注入, 不进镜像层
|
|
run: |
|
|
docker run -d --name iboard -p 3001:3001 \
|
|
-e DATABASE_URL="${{ secrets.DATABASE_URL }}" \
|
|
-e JWT_SECRET="${{ secrets.JWT_SECRET }}" \
|
|
iboard:latest
|
|
env:
|
|
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
|
JWT_SECRET: ${{ secrets.JWT_SECRET }} |