Add seed Docker stage and push migrate/seed images in CI

- Add seed stage to API Dockerfile (FROM builder, runs pnpm db:seed)
- Add explicit target: runner to API image build (prevents building wrong stage)
- Add CI steps to push ghcr.io/groombook/migrate and ghcr.io/groombook/seed images

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Groom Book CEO
2026-03-17 23:46:29 +00:00
parent 20fa4698be
commit 75e89f5bf8
2 changed files with 31 additions and 0 deletions
+27
View File
@@ -94,6 +94,7 @@ jobs:
with:
context: .
file: apps/api/Dockerfile
target: runner
push: true
tags: |
ghcr.io/groombook/api:${{ github.sha }}
@@ -101,6 +102,32 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push Migrate image
uses: docker/build-push-action@v6
with:
context: .
file: apps/api/Dockerfile
target: migrate
push: true
tags: |
ghcr.io/groombook/migrate:${{ github.sha }}
ghcr.io/groombook/migrate:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push Seed image
uses: docker/build-push-action@v6
with:
context: .
file: apps/api/Dockerfile
target: seed
push: true
tags: |
ghcr.io/groombook/seed:${{ github.sha }}
ghcr.io/groombook/seed:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push Web image
uses: docker/build-push-action@v6
with:
+4
View File
@@ -38,3 +38,7 @@ CMD ["node", "apps/api/dist/index.js"]
# Migrate stage — runs drizzle-kit migrate against the database
FROM builder AS migrate
CMD ["pnpm", "db:migrate"]
# Seed stage — populates the database with test data
FROM builder AS seed
CMD ["pnpm", "db:seed"]