Files
espresso_frame/.gitea/workflows/server-docker-build.yml
T
tfaour 1f62653118
Build and push server image / build-and-push (push) Failing after 10s
Configure BuildKit to allow plain HTTP to the local registry
Docker defaults to HTTPS for any non-docker.io registry, and
10.0.0.246:3000 (a bare LAN IP:port) isn't serving valid HTTPS -- the
push kept going out over HTTPS and failing. Adds a buildkitd config
telling BuildKit specifically to use HTTP for that host.

This only fixes the actual build+push step (BuildKit). The "Log in"
step runs a plain `docker login` through the classic Docker CLI/daemon
instead, which doesn't read this config -- that one still needs
10.0.0.246:3000 added to "insecure-registries" in the actual Docker
daemon's /etc/docker/daemon.json on whatever host runs the Gitea
Actions runner, followed by a daemon restart. That's runner-host
infrastructure outside this repo.
2026-07-23 17:12:33 -04:00

56 lines
2.1 KiB
YAML

name: Build and push server image
on:
push:
branches: [main]
paths:
- "server/**"
- ".gitea/workflows/server-docker-build.yml"
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
# 10.0.0.246:3000 is plain HTTP (a bare LAN IP:port, no TLS cert
# would validate for it), but BuildKit defaults to HTTPS for any
# registry that isn't docker.io. This tells BuildKit specifically
# to skip that for this one host. NOTE: this only covers the
# actual build+push (BuildKit). The "Log in" step below runs a
# plain `docker login`, which goes through the classic Docker
# CLI/daemon instead of BuildKit and does NOT read this config --
# that one only works once the Docker daemon backing this runner
# has 10.0.0.246:3000 listed under "insecure-registries" in its
# own /etc/docker/daemon.json (then `systemctl restart docker`).
# That's runner-host infrastructure this repo can't configure.
config-inline: |
[registry."10.0.0.246:3000"]
http = true
insecure = true
- name: Log in to local Gitea Container Registry
uses: docker/login-action@v3
with:
# Pushed here instead of git.thumeit.com (still the source repo,
# just not the image registry anymore) -- since whiteboard mode
# added Node + native resvg bindings, the image grew past
# Cloudflare's payload-size limit in front of that host and
# every push 413'd. This LAN address has nothing in front of it.
registry: 10.0.0.246:3000
username: tfaour
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: ./server
push: true
tags: |
10.0.0.246:3000/tfaour/espresso-frame-server:latest
10.0.0.246:3000/tfaour/espresso-frame-server:${{ gitea.sha }}