Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

329
Vistas
Configuración de php-fpm y nginx lista para la producción de Docker

Tengo un pequeño problema teórico con la combinación de php-fpm, nginx y el código de la aplicación en Docker.

Estoy tratando de apegarme al modelo cuando la imagen de la ventana acoplable solo hace una cosa -> Tengo contenedores separados para php-fpm y nginx.

 php: image: php:5-fpm-alpine expose: - 9000:9000 volumes: - ./:/var/www/app nginx: image: nginx:alpine ports: - 3000:80 links: - php volumes: - ./nginx/app.conf:/etc/nginx/conf.d/app.conf - ./:/var/www/app

NOTA: En app.conf es root /var/www/app; Esquema de ejemplo de Symfony

Esto es excelente en desarrollo, pero no sé cómo convertirlo en un estado listo para producción. Montar el directorio de la aplicación en producción es realmente una mala práctica (si no me equivoco). En el mejor de los casos, copio el código fuente de la aplicación en el contenedor y uso este código precompilado ( COPY . /var/www/app en Dockerfile ), pero en este caso es imposible o no sé cómo.

Necesito compartir el código fuente de la aplicación entre dos contenedores (contenedor nginx y contenedor php-fpm) porque la cabina lo necesita.

Por supuesto, puedo crear mi propio contenedor nginx y php-fpm y agregar COPY . /var/www/app en ambos, pero creo que está mal porque dupliqué el código y todo el proceso de compilación (instalar dependencias, compilar código fuente, etc.) debe estar en ambos (nginx/php-fpm ) contenedores.

Intento buscar pero no encuentro ninguna idea de cómo resolver este problema. Muchos artículos muestran cómo hacer esto con el archivo docker-compose y el código de montaje con --volume pero no encontré ningún ejemplo de cómo usar esto en producción (sin volumen).

Solo una solución aceptable para mí (en este momento) es hacer un contenedor con nginx y php-fpm juntos, pero no estoy seguro de cuándo es una buena manera ( trato de encontrar las mejores prácticas ).

¿Tienes alguna experiencia con esto o alguna idea de cómo resolverlo?

¡Gracias por cualquier respuesta!

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Resuelvo el problema creando un volumen compartido con el archivo docker-compose:

 version: '3' volumes: share_place: services: php: image: php:5-fpm-alpine ports: - 9000:9000 volumes: - share_place:/var/www/app nginx: image: nginx:alpine ports: - 3000:80 volumes: - share_place:/var/www/app

Esto creará un volumen share_place que compartirá los datos entre los dos contenedores.

about 4 years ago · Santiago Trujillo Denunciar

0

En este momento uso algo como:

archivo acoplable:

 FROM php:fpm COPY . /var/www/app/ WORKDIR /var/www/app/ RUN composer install EXPOSE 9000 VOLUME /var/www/app/web

Dockerfile.nginx

 FROM nginx COPY default /etc/nginx/default

docker-compose.yml

 app: build: context: . web: build: context: . dockerfile: Dockerfile.nginx volumes_from: app

Pero en unos días en el lanzamiento de 17.05 podemos hacer en un Dockerfile algo como:

 FROM php:cli AS builder COPY . /var/www/app/ WORKDIR /var/www/app/ RUN composer install && bin/console assets:dump FROM php:fpm AS app COPY --from=builder /var/www/app/src /var/www/app/vendor /var/www/app/ COPY --from=builder /var/www/app/web/app.php /var/www/app/vendo /var/www/app/web/ FROM nginx AS web COPY default /etc/nginx/default COPY --from=builder /var/www/app/web /var/www/app/web
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda