Erstellen eines Docker Images für eine Node.js REST-API

Im Folgenden wird gezeigt, wie man eine Node.js REST-API für eine Verwendung in einer Containerbasierten Architektur vorbereiten kann. Es wird ein bestehendes Node.js Projekt vorausgesetzt, für das ein Docker Image erstellt wird.

Wir erstellen ein Docker Image mithilfe einer bestimmten Datei, die in der Regel Dockerfile genannt wird. Ein klassisches Dockerfile für eine Node.js Anwendung sieht folgendermaßen aus.

FROM node:14-alpine

# Create app directory
WORKDIR /usr/src/app

ENV NODE_ENV=production

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available ([email protected]+)
COPY package*.json ./

RUN npm ci --only=production

# Change user for security
USER node

# Bundle app source
COPY ./dist/src/ .

EXPOSE 3000
CMD [ "node", "index.js" ]

Im Folgenden betrachten wir diese Datei nun genauer.