From c16dc1d6944aa2a9621e252607c66206a02938d7 Mon Sep 17 00:00:00 2001 From: Danny Morabito Date: Sun, 6 Jul 2025 16:50:51 +0200 Subject: [PATCH] feat: Add Docker support and fix build issues --- .dockerignore | 32 ++++++++++++++++++++++++++++++++ Dockerfile | 35 +++++++++++++++++++++++++++++++++++ src/lib/database.ts | 2 +- 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d35a03d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,32 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Dependency directories +node_modules/ + +# SvelteKit build folder +.svelte-kit +build/ + +# Docker +Dockerfile +.dockerignore + +# Git +.git +.gitignore diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..31b343d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM node:20-alpine AS builder + +RUN mkdir -p /data && chown node:node /data + +WORKDIR /app + +COPY package.json . +RUN npm install + +COPY . . + +RUN npm run build + +FROM node:20-alpine + +WORKDIR /app + +RUN addgroup -S appgroup && adduser -S appuser -G appgroup + +COPY package.json . +RUN npm install --omit=dev + +RUN mkdir -p /data +RUN touch /data/portal-btc.db + +COPY --from=builder /app/build . + +VOLUME /data +RUN chown -R appuser:appgroup /app /data + +USER appuser + +EXPOSE 3000 + +CMD ["node", "index.js"] diff --git a/src/lib/database.ts b/src/lib/database.ts index b3fc487..bfa5ca0 100644 --- a/src/lib/database.ts +++ b/src/lib/database.ts @@ -3,7 +3,7 @@ import { ENCRYPTION_KEY } from "./config"; import { browser } from "$app/environment"; const db = browser ? null : createClient({ - url: "file:portal-btc.db", + url: "file:/data/portal-btc.db", encryptionKey: ENCRYPTION_KEY, });