codenuk_backend_mine/services/unison/Dockerfile
2025-09-26 17:04:14 +05:30

53 lines
981 B
Docker

FROM node:18-alpine
# Set working directory
WORKDIR /app
# Install system dependencies
RUN apk add --no-cache \
curl \
bash \
&& rm -rf /var/cache/apk/*
# Create non-root user
RUN addgroup -g 1001 -S nodejs && \
adduser -S unison -u 1001 -G nodejs
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci --only=production && \
npm cache clean --force
# Copy source code
COPY src/ ./src/
# Copy environment configuration
COPY config.env ./
# Create logs directory
RUN mkdir -p logs && \
chown -R unison:nodejs logs
# Change ownership of app directory
RUN chown -R unison:nodejs /app
# Switch to non-root user
USER unison
# Expose port
EXPOSE 8010
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD curl -f http://localhost:8010/health || exit 1
# Set environment variables
ENV NODE_ENV=production
ENV PORT=8010
ENV HOST=0.0.0.0
# Start the application
CMD ["node", "src/app.js"]