Fix: Use Docker volume instead of bind mount for config
Some checks failed
deploy-tunnel / deploy (push) Has been cancelled
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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user