diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f42174a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +node_modules +dist +*.log +.git +.env +.cache diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 0f20fd6..543d361 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -24,5 +24,5 @@ jobs: - name: Build and push Docker image run: | - docker build -t pihkaal/wov-quest-result:latest . - docker push pihkaal/wov-quest-result:latest + docker build -t pihkaal/lbf-bot:latest . + docker push pihkaal/lbf-bot:latest diff --git a/apps/discord-bot/Dockerfile b/apps/discord-bot/Dockerfile new file mode 100644 index 0000000..c7e1e41 --- /dev/null +++ b/apps/discord-bot/Dockerfile @@ -0,0 +1,18 @@ +FROM node:22-alpine + +WORKDIR /app + +RUN corepack enable && corepack prepare pnpm@10.24.0 --activate + +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ +COPY packages/utils ./packages/utils +COPY packages/database ./packages/database +COPY apps/discord-bot ./apps/discord-bot + +RUN pnpm install --frozen-lockfile + +RUN pnpm --filter @lbf-bot/utils run build +RUN pnpm --filter @lbf-bot/database run build +RUN pnpm --filter @lbf/discord-bot run build + +CMD ["node", "apps/discord-bot/dist/index.js"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..08a65ce --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,49 @@ +services: + postgres: + image: postgres:17-alpine + restart: unless-stopped + environment: + POSTGRES_USER: ${POSTGRES_USER:-postgres} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB:-lbf-bot} + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + + redis: + image: redis:7-alpine + restart: unless-stopped + volumes: + - redis_data:/data + ports: + - "6379:6379" + + discord-bot: + build: + context: . + dockerfile: apps/discord-bot/Dockerfile + restart: unless-stopped + depends_on: + - postgres + - redis + environment: + - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB} + - REDIS_URL=redis://redis:6379 + - DISCORD_BOT_TOKEN + - DISCORD_MENTION + - DISCORD_REWARDS_GIVER + - DISCORD_REWARDS_CHANNEL + - DISCORD_ADMIN_MENTION + - DISCORD_ADMIN_CHANNEL + - DISCORD_TRACKING_CHANNEL + - WOV_API_KEY + - WOV_CLAN_ID + - WOV_FETCH_INTERVAL + - WOV_TRACKING_INTERVAL + - QUEST_REWARDS + - QUEST_EXCLUDE + +volumes: + postgres_data: + redis_data: