microservices/auth-service/Dockerfile

31 lines
784 B
Text
Raw Normal View History

2025-04-16 10:49:46 -07:00
# syntax=docker/dockerfile:1
# Use the official Node.js image as the base image
ARG NODE_VERSION=22.13.1
FROM node:${NODE_VERSION}-slim AS base
# Set the working directory
WORKDIR /app
# Copy package.json and package-lock.json for dependency installation
COPY --link package.json package-lock.json ./
# Install dependencies using npm ci for deterministic builds
RUN --mount=type=cache,target=/root/.npm npm ci --production
# Copy the application source code
COPY --link . .
# Set environment variables for production
ENV NODE_ENV=production
ENV NODE_OPTIONS="--max-old-space-size=4096"
# Create a non-root user and switch to it
RUN useradd -m appuser
USER appuser
# Expose the application port
EXPOSE 8080
# Define the command to run the application
CMD ["node", "server.js"]