name: Docker Build and Push # 仅 main 分支 push 触发, 其他分支不触发 on: push: branches: - main - master 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 }}