Cei care folosiți containere, cum faceți deployment-ul, aplicația o integrați în container sau mapați în container directorul care conține aplicația?
Adică eu văd două scenarii:
- În Dockerfile se bagă ceva de genul, iar containerul va fi un monolit self-container și self-sufficient. Avantajul e portabilitatea fără bătai de cap. Ai nevoie să muți aplicația pe alt server, iei containerul cu totul și o pui acolo, fără alte bătăi de cap.
FROM node
WORKDIR /usr/app
COPY app/* .
RUN npm i apollo-server mariadb
CMD ["node", "index.js"]
- Se crează un container care conține doar engine-ul (de exemplu doar nodejs).
# Dockerfile
FROM node
WORKDIR /usr/app
Aplicația în sine este pe mașina host și este mapată în container la runtime:
# docker-compose.yml
services:
server:
build: .
command: node index.js
volumes:
- app:/usr/app/
Ce variantă preferați și de ce? Sau depinde de situație?