feat(P1): orca-traefik container image + release pipeline (REQ-171)
Dockerfile.traefik: extends traefik:v3.3.0 with baked default
static config (entrypoints 127.0.0.1:8080/8443/8081, file provider
watching /etc/traefik/dynamic, json log). Host-side traefik.yml
mounted :ro at runtime to override baked default (preserves
traefik-on-public-ip opt-out, REQ-100, C-58).
No certificatesResolvers — traefik v3.3 only supports acme/tailscale
(research finding). tls: {} in dynamic config for v0.14; real mTLS
deferred to v0.15 (grill G-003, confidence 0.55 < 0.60).
release.sh: second docker block builds+pushes orca-traefik image.
.coreci.yml: container-publish-traefik step mirrors container-publish.
Verified: docker build -f Dockerfile.traefik . succeeds; image starts
traefik v3.3.0 with --configFile=/etc/traefik/traefik.yml.
---ci---
project: orca
phase: 1
milestone: v0.14
status: execute
---/ci---
This commit is contained in:
@@ -211,3 +211,36 @@ else
|
||||
info "✓ container image ${IMAGE}:${VERSION} published"
|
||||
fi
|
||||
fi
|
||||
|
||||
# --- publish orca-traefik container image (REQ-171, R-024) ----------------
|
||||
# Custom traefik image with baked default static config. The host-side
|
||||
# traefik.yml is mounted :ro at runtime to override the baked default.
|
||||
# Skipped gracefully if docker is not on PATH (CI handles it via
|
||||
# .coreci.yml container-publish-traefik step).
|
||||
|
||||
TRAEFIK_IMAGE="${CONTAINER_REGISTRY}/${CONTAINER_OWNER}/orca-traefik"
|
||||
|
||||
if ! command -v docker >/dev/null 2>&1; then
|
||||
info "docker not found on PATH — skipping orca-traefik image publish (CI handles it)."
|
||||
else
|
||||
info "building orca-traefik image ${TRAEFIK_IMAGE}:${VERSION}..."
|
||||
docker build \
|
||||
-f Dockerfile.traefik \
|
||||
-t "${TRAEFIK_IMAGE}:${VERSION}" \
|
||||
-t "${TRAEFIK_IMAGE}:latest" \
|
||||
"$REPO_ROOT"
|
||||
|
||||
if [ -z "${GITEA_TOKEN:-}" ]; then
|
||||
info "GITEA_TOKEN not set — skipping orca-traefik push (image built locally only)."
|
||||
else
|
||||
if ! docker login "$CONTAINER_REGISTRY" -u cloudinit-bot --password-stdin <<<"$GITEA_TOKEN" 2>/dev/null; then
|
||||
echo "$GITEA_TOKEN" | docker login "$CONTAINER_REGISTRY" -u cloudinit-bot --password-stdin
|
||||
fi
|
||||
info "pushing ${TRAEFIK_IMAGE}:${VERSION}..."
|
||||
docker push "${TRAEFIK_IMAGE}:${VERSION}"
|
||||
info "pushing ${TRAEFIK_IMAGE}:latest..."
|
||||
docker push "${TRAEFIK_IMAGE}:latest"
|
||||
docker logout "$CONTAINER_REGISTRY"
|
||||
info "✓ orca-traefik image ${TRAEFIK_IMAGE}:${VERSION} published"
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user