Fix seeder: install tsx globally, add verbose CMD output

- Install tsx globally to avoid lockfile conflicts with --omit=dev
- Use set -ex in CMD so Docker logs show exactly which step fails
- Production deps installed cleanly via npm ci --omit=dev

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Dorian
2026-02-12 12:58:49 +00:00
parent dd4d5e99a4
commit e3ce88dc13

View File

@@ -7,10 +7,12 @@ FROM node:20-alpine
WORKDIR /app WORKDIR /app
# Install only production deps (skip sharp & other heavy devDeps), # Install tsx globally (isolated from project deps, avoids lockfile conflicts)
# then add tsx separately so we can run TypeScript seed scripts. RUN npm install -g tsx
# Install only production deps (no sharp or other heavy native devDeps)
COPY package*.json ./ COPY package*.json ./
RUN npm ci --omit=dev && npm install --no-save tsx RUN npm ci --omit=dev
# Copy only what the seed scripts need # Copy only what the seed scripts need
COPY scripts/ ./scripts/ COPY scripts/ ./scripts/
@@ -21,4 +23,5 @@ COPY tsconfig.json ./
ENV RELAY_URL=ws://relay:8080 ENV RELAY_URL=ws://relay:8080
ENV ORIGIN=http://localhost:7777 ENV ORIGIN=http://localhost:7777
CMD ["sh", "-c", "node scripts/wait-for-relay.mjs && npx tsx scripts/seed-profiles.ts && npx tsx scripts/seed-activity.ts && echo '✅ Seeding complete!'"] # set -ex: print each command before running, exit on first failure
CMD ["sh", "-c", "set -ex && node scripts/wait-for-relay.mjs && tsx scripts/seed-profiles.ts && tsx scripts/seed-activity.ts && echo 'Seeding complete!'"]