Learning
Docker

Dockerfile alapok

Dockerfile utasítások, Node.js példa, CMD vs ENTRYPOINT, .dockerignore, és cache-barát sorrend.

Dockerfile alapok

A Dockerfile egy szöveges fájl, amely utasítások sorozatát tartalmazza – ezek alapján épül fel a Docker image. Minden utasítás egy új réteget hoz létre.

Alapvető utasítások

UtasításLeírás
FROMAlap image megadása
WORKDIRMunkakönyvtár beállítása
COPYFájlok másolása a konténerbe
ADDMint a COPY, de URL-t/tar-t is kezel
RUNParancs build idején (új réteg)
CMDAlapértelmezett parancs indításkor
ENTRYPOINTBelépési pont (CMD argumentumként)
ENVKörnyezeti változó
EXPOSEDokumentálja a portot
ARGBuild-time argumentum
VOLUMEVolume mount pont deklarálása

Egyszerű Node.js Dockerfile

FROM node:18

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

CMD vs ENTRYPOINT

# CMD – felülírható docker run paranccsal
CMD ["npm", "start"]

# ENTRYPOINT – a CMD az argumentuma lesz
ENTRYPOINT ["node"]
CMD ["server.js"]

.dockerignore

node_modules
.git
.env
*.log
dist
coverage
.DS_Store

Cache-barát sorrend

FROM node:18-alpine
WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .
RUN npm run build

Rövid összefoglaló

  • A Dockerfile sorrendje kritikus a cache miatt.
  • .dockerignore nélkül a build context feleslegesen nagy és lassú.
  • CMD/ENTRYPOINT együtt is használható (ENTRYPOINT program, CMD default args).

On this page