From 7570be63bbe46c7e1b6b8691b1d6ac53fad0975a Mon Sep 17 00:00:00 2001 From: josedario87 Date: Sun, 5 Oct 2025 02:48:34 -0600 Subject: [PATCH] Fix: Use Docker volume instead of bind mount for config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cambiado de bind mount a named volume para evitar error 'is a directory' - Workflow ahora copia config.yml y credentials.json al volumen con docker cp - Esto evita que Docker cree directorios en vez de archivos - Método más robusto y compatible con gitea-runner --- .gitea/workflows/deploy.yml | 25 +++++++++++-------------- docker-compose.yml | 6 ++++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a11eb14..67b467a 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -32,18 +32,6 @@ jobs: fi echo "✓ Archivos de configuración creados desde secrets" - - name: Verify config.yml exists as file - run: | - if [ -d config.yml ]; then - echo "⚠️ config.yml es un directorio, eliminando..." - rm -rf config.yml - fi - if [ ! -f config.yml ]; then - echo "❌ Error: config.yml no existe como archivo" - exit 1 - fi - echo "✓ config.yml existe y es un archivo" - - name: Ensure external docker network exists run: | docker network inspect principal >/dev/null 2>&1 || docker network create principal @@ -54,8 +42,17 @@ jobs: - name: Pull fresh cloudflared image run: docker compose pull - - name: Update stack - run: docker compose --project-name cloudflared-tunnel up -d --remove-orphans --wait + - name: Create temporary container to populate volume + run: | + docker compose --project-name cloudflared-tunnel up --no-start + docker cp config.yml cloudflared-tunnel:/etc/cloudflared/config.yml + docker cp credentials.json cloudflared-tunnel:/etc/cloudflared/credentials.json + + - name: Start tunnel + run: docker compose --project-name cloudflared-tunnel start + + - name: Wait for tunnel to be healthy + run: docker compose --project-name cloudflared-tunnel wait cloudflared - name: Show tunnel status run: docker compose --project-name cloudflared-tunnel logs --tail=50 diff --git a/docker-compose.yml b/docker-compose.yml index 8068cdb..46abf2c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,13 +7,15 @@ services: restart: unless-stopped command: tunnel --config /etc/cloudflared/config.yml run volumes: - - ./config.yml:/etc/cloudflared/config.yml:ro - - ./credentials.json:/etc/cloudflared/credentials.json:ro + - cloudflared-config:/etc/cloudflared environment: - TUNNEL_ID=${TUNNEL_ID} networks: - principal +volumes: + cloudflared-config: + networks: principal: external: true