bug: Error when starting trigger.dev with docker-compose connecting to supabase project
jordigiam opened this issue · comments
Provide environment information
System:
OS: macOS 14.1
CPU: (8) arm64 Apple M3
Memory: 2.66 GB / 24.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.16.0 - ~/.nvm/versions/node/v18.16.0/bin/node
Yarn: 1.22.21 - /opt/homebrew/bin/yarn
npm: 9.5.1 - ~/.nvm/versions/node/v18.16.0/bin/npm
pnpm: 8.8.0 - ~/.nvm/versions/node/v18.16.0/bin/pnpm
bun: 1.1.4 - ~/.nvm/versions/node/v18.16.0/bin/bun
Describe the bug
When trying to start the Trigger.dev service using Docker and docker-compose, an error occurs during the deployment of Prisma migrations. The error mentions that there are failed migrations and missing columns in the database.
Reproduction repo
No reproduction repository is available, but it can be reproduced using the following configuration files and commands.
To reproduce
- Run the following command to pull the Docker image:
docker pull ghcr.io/triggerdotdev/trigger.dev:main
- Use the following docker-compose.yml file using valids params for POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, DATABASE_HOST:
version: "3.8"
services:
triggerdotdev:
image: ghcr.io/triggerdotdev/trigger.dev:main
container_name: triggerdotdev
restart: unless-stopped
env_file:
- .env
ports:
- 3030:3030
- Use the following .env file:
LOGIN_ORIGIN=http://localhost:3030
APP_ORIGIN=http://localhost:3030
PORT=3030
REMIX_APP_PORT=3030
# Encryption key that will be used to encrypt magic link tokens
MAGIC_LINK_SECRET=e7bbbffd751b749f4710d529c6964d5d
# Encryption key that will be used to encrypt session cookies
SESSION_SECRET=7acbf2cf1bdb5b43b306bafa03780f9a
# Must be a random 16 byte hex string. You can generate an encryption key by running `openssl rand -hex 16` in your terminal
# WARNING: YOU MUST SET THIS TO A RANDOM VALUE IN PRODUCTION
ENCRYPTION_KEY=8c8e8cec45aeeaf0e01984350f73e1b9
POSTGRES_USER=******
POSTGRES_PASSWORD=******
POSTGRES_DB=******
DATABASE_HOST=******
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}?schema=triggerdotdev
# This sets the URL used for direct connections to the database and should only be needed in limited circumstances
# See: https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#fields:~:text=the%20shadow%20database.-,directUrl,-No
DIRECT_URL=${DATABASE_URL}
# Github sign in OAUTH client id and secret (Optional)
# AUTH_GITHUB_CLIENT_ID=
# AUTH_GITHUB_CLIENT_SECRET=
# E-mail settings, ensure the FROM_EMAIL matches what you setup with Resend.com.
# If these are not set, emails will be printed to the console.
# FROM_EMAIL=
# REPLY_TO_EMAIL=
# RESEND_API_KEY=
NODE_ENV=production
RUNTIME_PLATFORM=docker-compose
- Run the command:
docker-compose up
Additional information
triggerdotdev | + [ -n ******]
triggerdotdev | + scripts/wait-for-it.sh ****** -- echo database is up
triggerdotdev | Unknown argument: ******
triggerdotdev | Usage:
triggerdotdev | scripts/wait-for-it.sh host:port|url [-t timeout] [-- command args]
triggerdotdev | -q | --quiet Do not output any status messages
triggerdotdev | -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout
triggerdotdev | -- COMMAND ARGS Execute command with args after the test finishes
triggerdotdev | + pnpm --filter @trigger.dev/database db:migrate:deploy
triggerdotdev |
triggerdotdev | > @trigger.dev/database@0.0.1 db:migrate:deploy /triggerdotdev/packages/database
triggerdotdev | > prisma migrate deploy
triggerdotdev |
triggerdotdev | Prisma schema loaded from prisma/schema.prisma
triggerdotdev | Datasource "db": PostgreSQL database "postgres", schema "triggerdotdev" at ******
triggerdotdev |
triggerdotdev | 508 migrations found in prisma/migrations
triggerdotdev |
triggerdotdev | Error: P3009
triggerdotdev |
triggerdotdev | migrate found failed migrations in the target database, new migrations will not be applied. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve
triggerdotdev | The `20240130165343_add_composite_index_to_job_run_for_job_id_and_created_at` migration started at 2024-06-11 09:59:01.840235 UTC failed
triggerdotdev |
triggerdotdev |
triggerdotdev | /triggerdotdev/packages/database:
triggerdotdev | ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL @trigger.dev/database@0.0.1 db:migrate:deploy: `prisma migrate deploy`
triggerdotdev | Exit status 1
triggerdotdev | + cp packages/database/prisma/schema.prisma apps/webapp/prisma/
triggerdotdev | + cp node_modules/@prisma/engines/libquery_engine-linux-arm64-openssl-1.1.x.so.node apps/webapp/prisma/
triggerdotdev | + pnpm --filter webapp db:seed
triggerdotdev |
triggerdotdev | > webapp@1.0.0 db:seed /triggerdotdev/apps/webapp
triggerdotdev | > node prisma/seed.js
triggerdotdev |
triggerdotdev | 🔌 setting up prisma client to postgresql://******@******/******?schema=triggerdotdev&connection_limit=10&pool_timeout=60
triggerdotdev | 🔌 prisma client connected
triggerdotdev | 🔌 No database replica, using the regular client
triggerdotdev | prisma:info Starting a postgresql pool with 10 connections.
triggerdotdev | Upserting auth method airtable.oauth2
triggerdotdev | Upserting auth method github.oauth2
triggerdotdev | Upserting auth method linear.oauth2
triggerdotdev | Upserting auth method slack.oauth2Bot
triggerdotdev | Upserting auth method slack.oauth2User
triggerdotdev | Upserting auth method supabase-management.oauth2
triggerdotdev | Running data migration 2023-09-27-AddStagingEnvironments
triggerdotdev | prisma:error
triggerdotdev | Invalid `prisma.project.findMany()` invocation:
triggerdotdev |
triggerdotdev |
triggerdotdev | The column `Project.deletedAt` does not exist in the current database.
triggerdotdev | PrismaClientKnownRequestError:
triggerdotdev | Invalid `prisma.project.findMany()` invocation:
triggerdotdev |
triggerdotdev |
triggerdotdev | The column `Project.deletedAt` does not exist in the current database.
triggerdotdev | at Cn.handleRequestError (/triggerdotdev/apps/webapp/prisma/seed.js:123:6809)
triggerdotdev | at Cn.handleAndLogRequestError (/triggerdotdev/apps/webapp/prisma/seed.js:123:6198)
triggerdotdev | at Cn.request (/triggerdotdev/apps/webapp/prisma/seed.js:123:5918)
triggerdotdev | at async d (/triggerdotdev/apps/webapp/prisma/seed.js:128:9968)
triggerdotdev | at async /triggerdotdev/apps/webapp/prisma/seed.js:632:90313
triggerdotdev | at async Proxy._transactionWithCallback (/triggerdotdev/apps/webapp/prisma/seed.js:128:8631)
triggerdotdev | at async ny (/triggerdotdev/apps/webapp/prisma/seed.js:632:90028)
triggerdotdev | at async iy (/triggerdotdev/apps/webapp/prisma/seed.js:632:89993)
triggerdotdev | at async ly (/triggerdotdev/apps/webapp/prisma/seed.js:632:90855) {
triggerdotdev | code: 'P2022',
triggerdotdev | clientVersion: '5.4.1',
triggerdotdev | meta: { column: 'Project.deletedAt' }
triggerdotdev | }
triggerdotdev | + cd /triggerdotdev/apps/webapp
triggerdotdev | + NODE_PATH=/triggerdotdev/node_modules/.pnpm/node_modules exec dumb-init node --max-old-space-size=8192 ./build/server.js
triggerdotdev | 🔌 setting up prisma client to postgresql://******@******/postgres?schema=triggerdotdev&connection_limit=10&pool_timeout=60
triggerdotdev | 🔌 prisma client connected
triggerdotdev | 🔌 No database replica, using the regular client
triggerdotdev | 🔦 Tracer: Logger exporter enabled (sampling = 0.05)
triggerdotdev | Could not initialize MarQS because process.env.REDIS_HOST and process.env.REDIS_PORT are required to be set. Trigger.dev v3 will not work without this.
triggerdotdev | /triggerdotdev/apps/webapp/build/index.js:14414
triggerdotdev | throw new Error(
triggerdotdev | ^
triggerdotdev |
triggerdotdev | Error: Could not initialize auto-increment counter because process.env.REDIS_HOST and process.env.REDIS_PORT are required to be set.
triggerdotdev | at getAutoIncrementCounter (/triggerdotdev/apps/webapp/build/index.js:14414:11)
triggerdotdev | at singleton (/triggerdotdev/apps/webapp/build/index.js:3073:84)
triggerdotdev | at Object.<anonymous> (/triggerdotdev/apps/webapp/build/index.js:14411:27)
triggerdotdev | at Module._compile (node:internal/modules/cjs/loader:1376:14)
triggerdotdev | at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
triggerdotdev | at Module.load (node:internal/modules/cjs/loader:1207:32)
triggerdotdev | at Module._load (node:internal/modules/cjs/loader:1023:12)
triggerdotdev | at Module.require (node:internal/modules/cjs/loader:1235:19)
triggerdotdev | at require (node:internal/modules/helpers:176:18)
triggerdotdev | at Object.<anonymous> (/triggerdotdev/apps/webapp/build/server.js:37:15)
triggerdotdev |
triggerdotdev | Node.js v20.11.1
triggerdotdev exited with code 1
This is a duplicate of #1026.
This is an annoying issue but there's a workaround in that issue which should help for now.