Files
devops-directive-docker-course/06-building-container-images/api-node/Dockerfile.6
2023-02-10 10:37:13 -05:00

30 lines
651 B
Docker

# Pin specific version for stability
# Use alpine for reduced image size
FROM node:19.4-alpine
# Set NODE_ENV
ENV NODE_ENV production
# Specify working directory other than /
WORKDIR /usr/src/app
# Copy only files required to install
# dependencies (better layer caching)
COPY package*.json ./
# Install only production dependencies
RUN npm ci --only=production
# Use non-root user
# Use --chown on COPY commands to set file permissions
USER node
# Copy remaining source code AFTER installing dependencies.
# Again, copy only the necessary files
COPY --chown=node:node ./src/ .
# Indicate expected port
EXPOSE 3000
CMD [ "node", "index.js" ]