cheatsheets

Docker / Konfiguracja / Dockerfile

Plik konfiguracyjny, który zawiera instrukcje do budowania obrazu Dockera. Jest to skrypt, który definiuje, jak zbudować obraz kontenera, w tym jakie pliki skopiować, jakie polecenia uruchomić i jakie ustawienia zastosować.

Przykładowy plik Dockerfile

FROM node:iron
COPY . .
RUN npm install
CMD ["npm", "run", "dev"]

💡 Hint: Po instalacji pluginu “Docker” w edytorze Visual Studio Code, podczas wypełniania pliku Dockerfile będziemy otrzymywali podpowiedzi.

Polecenia (popularne)

FROM

# Stabilna wersja obrazu ze skonfigurowanym Node.js
FROM node
# Uniwersalny obraz
FROM busybox
# Minimalistyczna wersja obrazu z Alpine Linux
FROM node:11.14.0-alpine
# Wersja obrazu z Node.js w wersji "iron"
# (wersja "iron" jest jedną z wersji LTS Node.js)
FROM node:iron

WORKDIR

WORKDIR /home/node/app
WORKDIR /app

COPY

# UWAGA: brak cache-a dockerowego
COPY . .
COPY package*.json ./

RUN

RUN npm install

CMD

CMD npm run dev
CMD ["npm", "run", "dev"]

EXPOSE

EXPOSE 3000

ENV

ENV NODE_ENV=production
ENV PORT=3000

VOLUME

VOLUME /home/node/app
VOLUME /app

ARG

ARG NODE_VERSION=11.14.0
FROM node:${NODE_VERSION}-alpine

LABEL

LABEL maintainer="piecioshka"
LABEL version="1.0"
LABEL description="Dockerfile for Node.js application"

HEALTHCHECK

HEALTHCHECK --interval=30s --timeout=30s \
  CMD curl -f http://localhost:3000/ || exit 1

USER

USER node
USER root

SHELL

SHELL ["/bin/sh", "-c"]
SHELL ["/bin/bash", "-c"]

STOPSIGNAL

STOPSIGNAL SIGTERM

ONBUILD

ONBUILD RUN echo "This will run on build of the image that uses this as a base image"
ONBUILD COPY . /app
ONBUILD RUN npm install