feat: Add Drizzle Studio service to docker-compose and refine database environment variable configuration.

This commit is contained in:
syntaxbullet
2025-12-05 17:01:29 +01:00
parent e559e2413b
commit 1fb59a26cc
3 changed files with 25 additions and 4 deletions

View File

@@ -17,7 +17,7 @@
"db:push": "drizzle-kit push", "db:push": "drizzle-kit push",
"deploy": "docker compose run --rm app bun src/scripts/deploy.ts", "deploy": "docker compose run --rm app bun src/scripts/deploy.ts",
"dev": "bun --watch src/index.ts", "dev": "bun --watch src/index.ts",
"db:studio": "drizzle-kit studio" "db:studio": "drizzle-kit studio --host 0.0.0.0"
}, },
"dependencies": { "dependencies": {
"discord.js": "^14.25.1", "discord.js": "^14.25.1",

View File

@@ -1,11 +1,10 @@
import { z } from "zod"; import { z } from "zod";
import "dotenv/config";
const envSchema = z.object({ const envSchema = z.object({
DISCORD_BOT_TOKEN: z.string().optional(), DISCORD_BOT_TOKEN: z.string().optional(),
DISCORD_CLIENT_ID: z.string().optional(), DISCORD_CLIENT_ID: z.string().optional(),
DISCORD_GUILD_ID: z.string().optional(), DISCORD_GUILD_ID: z.string().optional(),
DATABASE_URL: z.string().min(1, "Database URL is required").default("postgres://kyoko:kyoko@localhost:5432/kyoko"), DATABASE_URL: z.string().min(1, "Database URL is required"),
}); });
const parsedEnv = envSchema.safeParse(process.env); const parsedEnv = envSchema.safeParse(process.env);

View File

@@ -33,7 +33,29 @@ services:
- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN} - DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN}
- DISCORD_GUILD_ID=${DISCORD_GUILD_ID} - DISCORD_GUILD_ID=${DISCORD_GUILD_ID}
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID} - DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
- DATABASE_URL=${DATABASE_URL} - DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
depends_on: depends_on:
- db - db
command: bun run dev command: bun run dev
studio:
container_name: kyoko_studio
image: kyoko-app
build:
context: ./app
dockerfile: Dockerfile
working_dir: /app
ports:
- "4983:4983"
volumes:
- ./app:/app
environment:
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- DB_NAME=${DB_NAME}
- DB_PORT=${DB_PORT}
- DB_HOST=db
- DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME}
depends_on:
- db
command: bun run db:studio