ci: expliciete cd in plaats van working-directory, en de deploy-map loggen
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 23s

.env verschijnt niet in de deploy-map en BIND moet nog steeds in
docker-compose.yml worden aangepast. De stappen die .env aanmaken, VERSION
schrijven en compose draaien vertrouwden alle drie op 'working-directory:'.
Wordt dat door de runner niet toegepast, dan belanden die bestanden in de
werkmap van de runner en draait de container vanaf de compose daar - terwijl
de rsync (die een expliciet pad gebruikt) wel netjes naar /opt/docker/server-up
schrijft. Dat verklaart precies wat er gemeld wordt.

- Alle stappen doen nu 'cd "$DEPLOY_DIR"' in het script zelf.
- De run-log toont de werkmap, de inhoud van .env, de compose-projectmap
  volgens de draaiende container en de daadwerkelijke poortbinding. Daarmee is
  in de log te zien waar alles landt in plaats van het te moeten raden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
This commit is contained in:
Ramon 2026-07-27 00:18:55 +02:00
parent 8da53aba6f
commit eb52c2ac41
2 changed files with 45 additions and 15 deletions

View file

@ -70,13 +70,18 @@ jobs:
./ "$DEPLOY_DIR/"
- name: Schrijf VERSION-bestand
working-directory: ${{ env.DEPLOY_DIR }}
run: echo "${VERSION}" > VERSION
- name: Bouwen (en pushen naar de registry)
working-directory: ${{ env.DEPLOY_DIR }}
run: |
set -euo pipefail
# Expliciet cd in plaats van 'working-directory:'; dat laatste wordt
# niet door elke runner even betrouwbaar toegepast.
cd "$DEPLOY_DIR"
echo "${VERSION}" > VERSION
echo "Werkmap: $(pwd)"
- name: Bouwen (en pushen naar de registry)
run: |
set -euo pipefail
cd "$DEPLOY_DIR"
# SU_TAG vastleggen zodat compose en de "Nu bijwerken"-knop in de app
# naar hetzelfde image wijzen (zie docs/updates.md).
#
@ -90,7 +95,8 @@ jobs:
touch .env
sed -i '/^SU_TAG=/d' .env
echo "SU_TAG=${VERSION}" >> .env
echo "Actieve instellingen:"; grep -vE '^\s*(#|$)' .env | sed 's/^/ /'
echo "Inhoud van $(pwd)/.env:"
grep -vE '^\s*(#|$)' .env | sed 's/^/ /'
# Draait deze server vanaf de registry (SU_IMAGE in .env), dan bouwen
# we hier én pushen we het resultaat, zodat de in-app updateknop het
@ -119,11 +125,17 @@ jobs:
fi
- name: Deploy
working-directory: ${{ env.DEPLOY_DIR }}
run: |
set -euo pipefail
cd "$DEPLOY_DIR"
docker compose up -d --remove-orphans
docker compose ps
echo "Compose-projectmap volgens de container:"
docker inspect server-up \
--format ' {{index .Config.Labels "com.docker.compose.project.working_dir"}}'
echo "Poortbinding:"
docker inspect server-up \
--format ' {{range $p, $c := .NetworkSettings.Ports}}{{$p}} -> {{range $c}}{{.HostIp}}:{{.HostPort}}{{end}}{{"\n"}}{{end}}'
- name: Wachten op healthcheck
run: |

View file

@ -69,14 +69,18 @@ jobs:
--exclude='.env' \
./ "$DEPLOY_DIR/"
- name: Schrijf VERSION-bestand
working-directory: ${{ env.DEPLOY_DIR }}
run: echo "${VERSION}" > VERSION
- name: Build image
working-directory: ${{ env.DEPLOY_DIR }}
- name: Instellingen en versie klaarzetten
run: |
set -euo pipefail
# Expliciet cd in plaats van 'working-directory:'. Dat laatste wordt
# niet door elke runner-implementatie even betrouwbaar toegepast, en
# als het misgaat belanden VERSION, .env en de container stilletjes in
# de werkmap van de runner in plaats van in de deploy-map.
cd "$DEPLOY_DIR"
echo "Werkmap: $(pwd)"
echo "${VERSION}" > VERSION
# De dev-server bouwt altijd zelf vanaf de dev-branch. SU_TAG vastleggen
# zodat compose exact het zojuist gebouwde image start.
#
@ -91,16 +95,30 @@ jobs:
touch .env
sed -i '/^SU_TAG=/d' .env
echo "SU_TAG=${VERSION}" >> .env
echo "Actieve instellingen:"; grep -vE '^\s*(#|$)' .env | sed 's/^/ /'
echo "Inhoud van $(pwd)/.env:"
grep -vE '^\s*(#|$)' .env | sed 's/^/ /'
- name: Build image
run: |
set -euo pipefail
cd "$DEPLOY_DIR"
docker compose build --pull
docker tag "server-up:${VERSION}" "server-up:${CHANNEL}" || true
- name: Deploy
working-directory: ${{ env.DEPLOY_DIR }}
run: |
set -euo pipefail
cd "$DEPLOY_DIR"
docker compose up -d --remove-orphans
docker compose ps
# Waar draait de container vandaan, en op welk adres luistert hij?
echo "Compose-projectmap volgens de container:"
docker inspect server-up \
--format ' {{index .Config.Labels "com.docker.compose.project.working_dir"}}'
echo "Poortbinding:"
docker inspect server-up \
--format ' {{range $p, $c := .NetworkSettings.Ports}}{{$p}} -> {{range $c}}{{.HostIp}}:{{.HostPort}}{{end}}{{"\n"}}{{end}}'
- name: Wachten op healthcheck
run: |