From d8c3997f24f70c7e0b2c54d173aef8f1f67f7e54 Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Mon, 1 Sep 2025 19:21:38 -0400 Subject: [PATCH] Fix Docker database directory and permissions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create /db directory in container - Ensure database directory exists and has proper permissions in startup script - Remove problematic conditional COPY command that was causing build failures This fixes the 'unable to open database file' error by ensuring the database directory exists before migrations run. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index aa872ae..ed44d46 100644 --- a/Dockerfile +++ b/Dockerfile @@ -91,17 +91,17 @@ COPY --from=backend-builder /usr/local/cargo/bin/sqlx /usr/local/bin/sqlx # Copy migrations for database setup COPY --from=backend-builder /app/backend/migrations /migrations -# Copy existing database if it exists (optional - migrations will create if needed) -COPY --from=backend-builder /app/backend/calendar.db /calendar.db 2>/dev/null || true - # Create startup script to copy frontend files, run migrations, and start backend -RUN mkdir -p /srv/www +RUN mkdir -p /srv/www /db RUN echo '#!/bin/sh' > /usr/local/bin/start.sh && \ echo 'echo "Copying frontend files..."' >> /usr/local/bin/start.sh && \ echo 'cp -r /app/frontend-dist/* /srv/www/' >> /usr/local/bin/start.sh && \ + echo 'echo "Ensuring database directory exists..."' >> /usr/local/bin/start.sh && \ + echo 'mkdir -p /db && chmod 755 /db' >> /usr/local/bin/start.sh && \ echo 'echo "Running database migrations..."' >> /usr/local/bin/start.sh && \ - echo 'sqlx migrate run --database-url "sqlite:/calendar.db" --source /migrations || echo "Migration failed but continuing..."' >> /usr/local/bin/start.sh && \ + echo 'sqlx migrate run --database-url "sqlite:/db/calendar.db" --source /migrations || echo "Migration failed but continuing..."' >> /usr/local/bin/start.sh && \ echo 'echo "Starting backend server..."' >> /usr/local/bin/start.sh && \ + echo 'export DATABASE_URL="sqlite:/db/calendar.db"' >> /usr/local/bin/start.sh && \ echo '/usr/local/bin/backend' >> /usr/local/bin/start.sh && \ chmod +x /usr/local/bin/start.sh