Fix: Use Docker volume instead of bind mount for config
Some checks failed
deploy-tunnel / deploy (push) Has been cancelled

- 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
This commit is contained in:
2025-10-05 02:48:34 -06:00
parent eeb150259a
commit 7570be63bb
2 changed files with 15 additions and 16 deletions

View File

@@ -32,18 +32,6 @@ jobs:
fi fi
echo "✓ Archivos de configuración creados desde secrets" 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 - name: Ensure external docker network exists
run: | run: |
docker network inspect principal >/dev/null 2>&1 || docker network create principal docker network inspect principal >/dev/null 2>&1 || docker network create principal
@@ -54,8 +42,17 @@ jobs:
- name: Pull fresh cloudflared image - name: Pull fresh cloudflared image
run: docker compose pull run: docker compose pull
- name: Update stack - name: Create temporary container to populate volume
run: docker compose --project-name cloudflared-tunnel up -d --remove-orphans --wait 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 - name: Show tunnel status
run: docker compose --project-name cloudflared-tunnel logs --tail=50 run: docker compose --project-name cloudflared-tunnel logs --tail=50

View File

@@ -7,13 +7,15 @@ services:
restart: unless-stopped restart: unless-stopped
command: tunnel --config /etc/cloudflared/config.yml run command: tunnel --config /etc/cloudflared/config.yml run
volumes: volumes:
- ./config.yml:/etc/cloudflared/config.yml:ro - cloudflared-config:/etc/cloudflared
- ./credentials.json:/etc/cloudflared/credentials.json:ro
environment: environment:
- TUNNEL_ID=${TUNNEL_ID} - TUNNEL_ID=${TUNNEL_ID}
networks: networks:
- principal - principal
volumes:
cloudflared-config:
networks: networks:
principal: principal:
external: true external: true