diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 79ba0cd..2f6903b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -51,29 +51,19 @@ jobs: steps: - name: Deploy to Production run: | - echo "Deploying to production server..." + echo "Deploying to production from within the Docker network..." - # Usamos el gestor de paquetes de Debian/Ubuntu - apt-get update - apt-get install -y openssh-client - - # El resto del script ya es correcto - mkdir -p ~/.ssh - echo "${{ secrets.PROD_SERVER_SSH_KEY }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H ${{ secrets.PROD_SERVER_HOST }} >> ~/.ssh/known_hosts - - ssh ${{ secrets.PROD_SERVER_USER }}@${{ secrets.PROD_SERVER_HOST }} << 'EOF' - echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---" - cd /opt/gestion-integral - - export DB_SA_PASSWORD="${{ secrets.DB_SA_PASSWORD_SECRET }}" - export JWT_KEY="${{ secrets.JWT_KEY_SECRET }}" - - docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} -p ${{ secrets.ACTIONS_PAT }} - docker compose pull - docker compose up -d - docker image prune -af - - echo "--- ¡¡DESPLIEGUE COMPLETADO CON ÉXITO!! ---" - EOF \ No newline at end of file + # Lanzamos un contenedor con docker-compose, lo conectamos a la red de gitea, + # y le damos acceso al socket de Docker y al directorio del proyecto. + docker run --rm \ + --network gitea-stack_gitea_net \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /opt/gestion-integral:/opt/gestion-integral \ + -w /opt/gestion-integral \ + --env DB_SA_PASSWORD='${{ secrets.DB_SA_PASSWORD_SECRET }}' \ + --env JWT_KEY='${{ secrets.JWT_KEY_SECRET }}' \ + docker/compose:latest \ + sh -c "docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} -p ${{ secrets.ACTIONS_PAT }} && docker compose pull && docker compose up -d" + + echo "Cleaning up dangling images on host..." + docker image prune -af \ No newline at end of file