Estoy creando una aplicación PHP dockerizada y me gustaría separar los servicios tanto como sea posible. Hasta ahora tengo contenedores nginx, mysql y php separados (que funcionan correctamente). Sin embargo, me pregunto dónde encaja node/npm en esto. Tengo paquetes npm para las tareas frontend y gulp para la compilación, etc.
Me preguntaba si era una buena práctica tener un contenedor de nodo separado que ejecute npm install / gulp. ¡Esto parece lo más apropiado, sin embargo, no he visto ningún ejemplo de alguien que haga esto! Además, cuando probé esto, tuve muchos problemas con node_modules, ¡pero esa es una historia para otro momento!
Aquí hay un ejemplo de mi archivo docker-compose
version: '2' services: nginx: build: './nginx' ports: - '8080:80' restart: always volumes: - '.:/app' - './nginx/app.conf:/etc/nginx/conf.d/app.conf' php: build: './php' volumes: - '.:/app' - './nginx/app.conf:/etc/nginx/conf.d/app.conf' mariadb: image: mariadb:10.0 ports: - '3310:3306' volumes: - './mariadb:/var/lib/mysql' environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=database_name node: image: node:boron volumes: - '.:/app' - /app/node_modulesActualmente estoy trabajando en una aplicación MEAN dockerizada (usando docker-compose ), allí encontrará cómo manejo la separación de un servidor web Node.js (basado en mhart/alpine-node ) y la base de datos MongoDB.
https://github.com/alex-gru/docker-MEAN-ts-starter
¡Espero que esto ayude!