diff --git a/Dockerfile b/Dockerfile index 792130f..138a6af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,10 @@ FROM node:18-alpine # Set working directory WORKDIR /app +# Create uploads directory and set permissions before switching user +RUN mkdir -p /app/uploads/wallpapers && \ + chown -R node:node /app + # Copy package files and install dependencies COPY package*.json ./ COPY backend/package*.json ./backend/ @@ -43,11 +47,6 @@ COPY --from=builder /app/backend/dist ./dist COPY --from=builder /app/frontend/build ./frontend/build COPY --from=builder /app/database.sqlite ./database.sqlite -# Create uploads directory with proper permissions -RUN mkdir -p /app/uploads/wallpapers && \ - chown -R node:node /app/uploads && \ - chmod -R 755 /app/uploads - # Switch to non-root user USER node diff --git a/backend/src/index.ts b/backend/src/index.ts index dcd57a3..37d6b89 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -30,7 +30,7 @@ async function connectToDatabase() { } // Configure multer for file uploads -const uploadDir = path.join(__dirname, '../../uploads/wallpapers'); +const uploadDir = path.join(__dirname, '../uploads/wallpapers'); if (!fs.existsSync(uploadDir)) { fs.mkdirSync(uploadDir, { recursive: true }); } diff --git a/docker-compose.yml b/docker-compose.yml index 2dd6084..73e905a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,8 @@ services: ports: - "3000:3000" volumes: - - data:/app/database - - uploads:/app/uploads + - ./database:/app/database + - ./uploads:/app/uploads environment: - NODE_ENV=development restart: unless-stopped