From 7f4bb14b18804536bbb85966961596f2b33d5883 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Mon, 16 Jun 2025 10:17:18 -0600 Subject: [PATCH] ugh its alpine --- Dockerfile | 9 ++++++++- docker-compose.yml | 29 ++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6229505..ea8114e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,14 @@ -FROM node:24-alpine +FROM node:24-slim WORKDIR /app +RUN apt-get update && apt-get install -y \ + python3 \ + make \ + g++ \ + libc6 \ + && rm -rf /var/lib/apt/lists/* + # Copy dependency files first for better caching COPY package.json package-lock.json ./ diff --git a/docker-compose.yml b/docker-compose.yml index e7eb51c..28eb6a4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,32 @@ +version: "3.8" + services: app: - image: ${IMAGE} + build: + context: . + dockerfile: Dockerfile ports: - - "${APP_PORT}:3000" + - "${APP_PORT:-3000}:3000" environment: NODE_ENV: production - SQLITE_DB_PATH: ${SQLITE_DB_PATH} + SQLITE_DB_PATH: /app/data/db.db + APP_PORT: 3000 + volumes: + - ./data:/app/data restart: unless-stopped + healthcheck: + test: + [ + "CMD", + "node", + "-e", + "const http = require('http'); const req = http.request({hostname: 'localhost', port: 3000, path: '/api/users', method: 'GET'}, (res) => { process.exit(res.statusCode === 200 ? 0 : 1); }); req.on('error', () => process.exit(1)); req.end();", + ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + +volumes: + data: + driver: local