# Seeder container — populates the Nostr relay with test profiles, # reactions, and comments so the dev deployment has content. # # Runs once and exits. docker-compose "restart: no" keeps it from looping. FROM node:20-alpine WORKDIR /app # Install tsx globally (isolated from project deps, avoids lockfile conflicts) RUN npm install -g tsx # Install only production deps (no sharp or other heavy native devDeps) COPY package*.json ./ RUN npm ci --omit=dev # Copy only what the seed scripts need COPY scripts/ ./scripts/ COPY src/data/testPersonas.ts ./src/data/testPersonas.ts COPY tsconfig.json ./ # Default env (overridden by docker-compose) ENV RELAY_URL=ws://relay:8080 ENV ORIGIN=http://localhost:7777 # 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!'"]