mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-18 16:01:18 +00:00
1dc600d722
The bind-mounted .git is owned by the host user but the dev container runs as root, so git aborts with "dubious ownership" and Go's automatic VCS stamping fails the build with: error obtaining VCS status: exit status 128 Use -buildvcs=false to disable VCS stamping. Production Dockerfiles are unaffected because they do not bind-mount .git; they COPY source into the image and let Go stamp normally.
68 lines
1.9 KiB
TOML
68 lines
1.9 KiB
TOML
# air config for the warmbly hot-reload dev container.
|
|
#
|
|
# Generic across all three Go services — the build target is read from
|
|
# the WARMBLY_CMD env var, which is set per service in
|
|
# docker-compose.yml (backend / consumer / worker).
|
|
#
|
|
# Tradeoffs:
|
|
# - `delay = 800` debounces save-bursts. Below ~500ms editors can fire
|
|
# two file events for one save (write + flush), which kicks two
|
|
# builds.
|
|
# - `kill_delay = "2s"` gives the old binary time to drain in-flight
|
|
# work (Kafka commits, HTTP requests) before the new one starts.
|
|
# - `include_ext` deliberately omits `.sql` — migrations are embedded
|
|
# and require an explicit re-embed (go build) which the .go change
|
|
# in migrate.go will trigger anyway.
|
|
|
|
root = "."
|
|
tmp_dir = "tmp"
|
|
testdata_dir = "testdata"
|
|
|
|
[build]
|
|
# Built with the same flags as the production Dockerfiles so the
|
|
# behavior under watch matches what ships. -tags musl is required
|
|
# because we're on alpine. -buildvcs=false skips git stamping:
|
|
# the bind-mounted .git is owned by the host user and the container
|
|
# runs as root, so git refuses ("dubious ownership") and the build
|
|
# aborts. Dev binaries don't need VCS info.
|
|
cmd = "go build -tags musl -buildvcs=false -o ./tmp/main ./cmd/${WARMBLY_CMD}"
|
|
bin = "./tmp/main"
|
|
full_bin = ""
|
|
include_ext = ["go", "tpl", "tmpl", "html"]
|
|
exclude_dir = [
|
|
"web",
|
|
"tracking",
|
|
"realtime",
|
|
"docs",
|
|
"tmp",
|
|
"bin",
|
|
"dist",
|
|
"build",
|
|
".git",
|
|
".github",
|
|
".agentd",
|
|
"node_modules",
|
|
]
|
|
include_dir = []
|
|
exclude_file = []
|
|
exclude_regex = ["_test\\.go"]
|
|
exclude_unchanged = true
|
|
follow_symlink = false
|
|
log = "build-errors.log"
|
|
delay = 800
|
|
stop_on_error = false
|
|
send_interrupt = true
|
|
kill_delay = "2s"
|
|
|
|
[color]
|
|
main = "magenta"
|
|
watcher = "cyan"
|
|
build = "yellow"
|
|
runner = "green"
|
|
|
|
[log]
|
|
time = true
|
|
|
|
[misc]
|
|
clean_on_exit = true
|