ci: no-SSH local deploy + Dockerfile build fixes #1
Reference in New Issue
Block a user
Delete Branch "fix/ci-deploy-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Enables the Gitea Actions pipeline to build and auto-deploy mangalord to the single-host homelab. mangalord is already live at https://manga.mc02.dev (bootstrapped by hand); this makes future pushes to
mainbuild + ship automatically.fix(docker)— three latent build bugs (never hit because mangalord had never deployed)main.rs/lib.rs, butCargo.tomldeclares a 2nd[[bin]] crawler(src/bin/crawler.rs) ->cargo build --lockedaborted (can't find bin crawler). Now stubs the crawler bin too.rust:1-slimfloated to Debian trixie (glibc 2.41) while the runtime stage was pinneddebian:bookworm-slim(glibc 2.36) -> crash-loopGLIBC_2.39 not found. Runtime ->debian:trixie-slimto match the builder.localhost(musl picks IPv6::1) but the Node server binds IPv40.0.0.0only -> falseunhealthy. Now probes127.0.0.1.ci— deploy without SSHThe runner is on the deploy host, so the deploy job drives the host docker daemon directly (
docker:cli+ the runner's shared socket) and runsdocker compose pull && up -dagainst the central compose with a bind-mounted compose dir, instead ofappleboy/ssh-action. It recreates onlymangalord-backend+mangalord-frontendat the freshly built SHA. TheSSH_*secrets are no longer needed.Host side already wired (no action needed)
act_runnercontainer.valid_volumesincludes/mnt/ssd/docker-data;docker_host: "-".mangalord-ci; repo secretsREGISTRY_URL/REGISTRY_USERNAME/REGISTRY_PASSWORDset.docker-compose.ymlhas bothmangalord-*services + themanga.mc02.devCaddy route; DB + storage provisioned.Notes
--lockedstays happy at 0.44.0. Want a patch bump? It needs a Cargo.lock refresh; say so.build-and-pushkeepscache-{from,to}: type=gha; if Gitea's cache backend rejects it I'll switch totype=registry. First cold backend build on the Pi is ~20-40 min.CRAWLER_DAEMON=false); the verified Chromium-on-ARM plan is tracked separately.Opening this PR runs the test jobs (build/deploy are gated off for PRs); merging to
maintriggers the first real build -> push -> deploy.🤖 Generated with Claude Code
- backend dep-cache stage stubs only main.rs/lib.rs, but Cargo.toml declares a second [[bin]] crawler at src/bin/crawler.rs, so `cargo build --locked` aborts ("can't find bin crawler"). Stub it too. - runtime was debian:bookworm-slim (glibc 2.36) while rust:1-slim now tracks trixie (glibc 2.41) -> "GLIBC_2.39 not found" at boot. Pin the runtime to debian:trixie-slim so it matches the builder's glibc. - frontend healthcheck probed localhost (-> musl picks IPv6 ::1) but the Node server binds IPv4 0.0.0.0 only -> false "unhealthy". Probe 127.0.0.1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>