when: branch: master event: push steps: deploy: image: docker:cli volumes: - /root/lab:/host-lab - /var/run/docker.sock:/var/run/docker.sock commands: - | set -eu CONTAINER_ID="$(docker ps --filter publish=8091 --format '{{.ID}}' | head -n 1)" test -n "$CONTAINER_ID" || { echo "No running portfolio container found on port 8091"; exit 1; } HOST_SITE="$(docker inspect "$CONTAINER_ID" --format '{{range .Mounts}}{{if eq .Destination "/usr/share/nginx/html"}}{{.Source}}{{end}}{{end}}')" test -n "$HOST_SITE" || { echo "Portfolio container has no /usr/share/nginx/html bind mount"; exit 1; } SITE_INDEX="$(grep -rl -m1 --include='index.html' 'Keith Casko' /host-lab 2>/dev/null | head -n 1)" test -n "$SITE_INDEX" || { echo "Could not locate casko.dev index.html under /root/lab"; exit 1; } TARGET="$(dirname "$SITE_INDEX")" echo "Portfolio container: $CONTAINER_ID" echo "Reported host mount: $HOST_SITE" echo "Resolved live site: $TARGET" cp -a index.html homelab.html css js assets "$TARGET/" docker restart "$CONTAINER_ID" echo "Deployed commit $CI_COMMIT_SHA to $HOST_SITE"