Para nuestra pila web, estamos pasando de un servidor de Windows a CentOS. Para facilitar el desarrollo, estamos utilizando Vagrant para ejecutar máquinas virtuales CentOS localmente. Estamos utilizando la función Carpetas sincronizadas de Vagrant para permitir que los desarrolladores usen sus IDE favoritos en su máquina host, pero descubrimos que falta una característica clave en esta configuración: la distinción entre mayúsculas y minúsculas del sistema de archivos.
La carpeta sincronizada dentro de la VM aparentemente toma las propiedades del sistema de archivos del host, por lo que si estoy desarrollando desde una máquina Windows, o incluso OSX, el sistema de archivos no distingue entre mayúsculas y minúsculas. Este es un gran problema, ya que nuestros servidores de producción serán CentOS puros y su sistema de archivos será sensible a mayúsculas y minúsculas.
La distinción entre mayúsculas y minúsculas es una de las principales razones por las que queríamos tener una VM local. Queremos evitar "¡Funciona en mi máquina!"
Algunas soluciones alternativas que hemos considerado o probado:
- Use lsyncd para sincronizar desde el recurso compartido vagabundo a una ubicación dentro de la VM que distingue entre mayúsculas y minúsculas
- actualizar archivos en el host no parece generar los eventos en la VM que escucha lsync
- Hacer una partición sensible a mayúsculas y minúsculas en el host
- (No funciona para Windows)
- Usar samba
- Esta puede ser una opción, pero aún no la hemos investigado.
¿Hay una mejor manera? Tenga en cuenta que tenemos desarrolladores que usan Windows, OS X y Ubuntu, y la solución debe funcionar en todas partes.
fuente
Respuestas:
Trabajé el problema en OS X creando una imagen de disco dispersa en mi carpeta de proyecto y la formateé para que fuera sensible a mayúsculas y minúsculas.
Después de montar la imagen dispersa, moví mi código sobre ella. Luego reemplazó la carpeta original "src" con un enlace simbólico / alias a la imagen montada. De esta forma, la carpeta compartida distingue entre mayúsculas y minúsculas dentro del sistema operativo invitado.
Definitivamente no es la solución más elegante, pero cierra la brecha entre el entorno de implementación y desarrollo, por lo que comencé a usar Vagrant en primer lugar.
¿Quizás una solución similar podría funcionar también para Ubuntu y Windows?
fuente
Me he encontrado con el mismo problema y la forma en que lo abordé fue obteniendo el directorio de trabajo en la VM a través de git clone y agregando un recurso compartido de Samba que lo señala para que sea accesible tanto en Windows como en Mac.
fuente