¡Buenos días a todos!
En mi trabajo diario, utilizamos NGINX+uWSGI+MongoDB como contenedor de aplicaciones Python. Para el control de versiones y el desarrollo colaborativo, utilizamos la instalación de GIT en cada computadora del desarrollador y un repositorio central de GIT para fines de entrega.
Todo funciona bien y sin problemas, PERO hay un problema menor.
Hasta ahora, cuando queremos entregar una nueva versión de nuestro software interno, todos los desarrolladores fusionan sus cambios y luego uno elegido (generalmente el gerente del proyecto) envía el producto final al repositorio "sucursal principal" en nuestro servidor GIT central.
Una vez que se realiza este envío, un script que busca constantemente en GIT recupera la nueva versión y la envía a nuestro servidor uWSGI, que luego carga la nueva versión para todas las conexiones nuevas.
Ahora, nos preguntamos cómo poder impulsar el servidor GIT y que uWSGI cargue y sirva directamente sus aplicaciones web desde este servidor GIT.
¿Hay alguien que ya tenga una solución similar o una configuración uWSGI para hacerlo?
Respuesta1
su git-repo basado en servidor no es nada con lo que trabajaría; siempre dependerás de un clon de repositorio local, derivado de ese repositorio git central (en mi humilde opinión). qué puedes hacer para deshacerte de los cronjobs feos: usa git'sgancho previo/posterior a la recepciónen tu servidor git:
Además de los enlaces del lado del cliente, puede utilizar un par de enlaces importantes del lado del servidor como administrador del sistema para aplicar casi cualquier tipo de política para su proyecto. Estos scripts se ejecutan antes y después de enviarlos al servidor. Los pre-hooks pueden salir de un valor distinto de cero en cualquier momento para rechazar el envío e imprimir un mensaje de error al cliente; puede configurar una política de inserción que sea tan compleja como desee.
También hay un informativo.stackoverflow-discusión sobre git-post-receive-hook para la preparación de sitios web; especialmente echa un vistazo al primer enlace de la respuesta superiorgit-sitio-web-cómo
Respuesta2
Un truco que uso con el sitio web de mi empresa (se genera desde un repositorio de github) es agregar esas opciones a uWSGI:
; reload the server everytime the repository is updated
touch-reload = .git/index
; every minute pull from the repository
cron = -1 -1 -1 -1 -1 git pull