diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a0a3f5e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM node:20-alpine + +# Set working directory +WORKDIR /app + +# Copy package files +COPY package*.json ./ + +# Install dependencies +RUN npm ci --only=production + +# Copy source code +COPY . . + +# Build the application +RUN npm run build + +# Create non-root user +RUN addgroup -g 1001 -S nodejs +RUN adduser -S rossuser -u 1001 + +# Change ownership of the app directory +RUN chown -R rossuser:nodejs /app +USER rossuser + +# Expose port +EXPOSE 3000 + +# Health check +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD node dist/health-check.js || exit 1 + +# Start the application +CMD ["npm", "start"] \ No newline at end of file