También estoy investigando esto, el enfoque que he tomado hasta ahora es:
Bootstrapping del servidor:
- Configure el proyecto
composer --create-project ... --no-dev
en una src
carpeta (aunque todavía veo un montón de desarrollo cruzado)
- Configurar la aplicación, compilar archivos estáticos, actualizar db, etc.
- Establecer todos los permisos correctos
Lo que me proporcionará una tienda de almacenamiento en ejecución desde mi directorio src (pero mi raíz web no apunta allí)
Entonces mi proceso de implementación:
- Hacer una nueva carpeta de lanzamiento
- rsync los archivos src en mi lanzamiento (excluyendo el cruft)
- implementar y descomprimir mis personalizaciones en la parte superior (un puñado de archivos de temas y módulos)
- instalar cualquier módulo de magento de terceros a través de magento connect
- apuntar mi servidor webroot a mi nueva versión (con un enlace simbólico)
- recarga con gracia mi servidor web
Esto me permite mantener el código principal de Magento separado del mío, usar el compositor para mantenerlo actualizado ... ¡y no necesito enviar 39,102! archivos con cada implementación, o ejecute comandos de compositor en el momento de la implementación.
... Ansioso por escuchar otros enfoques o por las mejores prácticas en esto, y también me encanta saber qué archivos son realmente necesarios para la producción y cuáles son dev .. para que pueda mantener mi webroot limpio.
Una vez que termine, tendré un libro de jugadas ansible y algunos comandos de Fabric para organizar la configuración y la implementación, que estoy feliz de compartir.
Espero que ayude