Skip to content

Commit d0f4a14

Browse files
beetlebugorgclaude
andcommitted
chore: remove Docker packaging and its docs
Drop the container image path entirely: Dockerfile, .dockerignore, compose.yaml, and the docker.yml GHCR-publish workflow. Strip the Docker documentation that went with it — the README "🐳 Run with Docker" section and the container/`make musl` build blurb, plus the docs-site installation page's "Run with Docker (recommended)" section and its Mac→Docker-Desktop pointer (macOS now points straight at build-from-source). Also drop the `make musl` target: its only consumer was the FROM-scratch image, so it's orphaned once Docker is gone. The underlying LIBC=musl static-build path in scripts/xbuild-tile57.sh is kept. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent efaca46 commit d0f4a14

7 files changed

Lines changed: 4 additions & 375 deletions

File tree

.dockerignore

Lines changed: 0 additions & 58 deletions
This file was deleted.

.github/workflows/docker.yml

Lines changed: 0 additions & 76 deletions
This file was deleted.

Dockerfile

Lines changed: 0 additions & 114 deletions
This file was deleted.

Makefile

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CACHE ?= $(if $(XDG_CACHE_HOME),$(XDG_CACHE_HOME),$(HOME)/.cache)/chartplotter
2727
S101_PC ?= $(HOME)/Projects/s101-portrayal-catalogue/PortrayalCatalog
2828
S101_FC ?= $(HOME)/Projects/s101-feature-catalogue/S-101FC/FeatureCatalogue.xml
2929

30-
.PHONY: build build-tile57 tile57-lib vendor-style-engine xbuild xbuild-tile57 musl test vet fmt fmt-check tidy clean clear-cache serve docs docs-shots bake-ienc bake-noaa serve-widget demo demo-chart1 serve-demo preslib-chart1 s64-pages
30+
.PHONY: build build-tile57 tile57-lib vendor-style-engine xbuild xbuild-tile57 test vet fmt fmt-check tidy clean clear-cache serve docs docs-shots bake-ienc bake-noaa serve-widget demo demo-chart1 serve-demo preslib-chart1 s64-pages
3131

3232
# Prebaked prod test set (US Inland ENC bundle + the NOAA world archive).
3333
# NB: keep these as bare values with NO inline `#` comments — Make folds any
@@ -137,20 +137,6 @@ build-tile57: build ## Alias for `build` (libtile57 is the sole engine now)
137137
xbuild xbuild-tile57: $(TILE57)/include/tile57.h ## Cross-compile CGO+libtile57 binaries with zig cc (linux+windows; darwin builds on a Mac runner)
138138
VERSION="$(VERSION)" TILE57="$(TILE57)" ENGINE_COMMIT="$(ENGINE_COMMIT)" scripts/xbuild-tile57.sh
139139

140-
# Fully-static musl binaries for the tiny FROM scratch Docker image (the "go-dims"
141-
# pattern): CGO+libtile57 linked against musl STATICALLY via zig cc, so `ldd` reports
142-
# "not a dynamic executable" and the binary drops straight into `FROM scratch`. Builds
143-
# linux/amd64 + linux/arm64 into dist/chartplotter_linux_<arch>_musl (same zig-cc
144-
# cross-build as xbuild — no QEMU; one host cross-links both arches by target swap).
145-
# The Dockerfile calls scripts/xbuild-tile57.sh with LIBC=musl directly; this target
146-
# is the local/CI equivalent. musl-static is strictly more portable than the gnu
147-
# xbuild (no glibc floor), so it's the recommended linux artifact — the gnu xbuild
148-
# path is kept intact for anyone who needs a glibc-dynamic build.
149-
MUSL_PLATFORMS ?= linux/amd64 linux/arm64
150-
musl: $(TILE57)/include/tile57.h ## Build fully-static musl binaries (linux amd64+arm64) into dist/ for the scratch Docker image
151-
VERSION="$(VERSION)" TILE57="$(TILE57)" ENGINE_COMMIT="$(ENGINE_COMMIT)" \
152-
LIBC=musl PLATFORMS="$(MUSL_PLATFORMS)" scripts/xbuild-tile57.sh
153-
154140
serve: build ## Serve the web frontend + provisioning API on :8080 (HOST/PORT/ASSETS overridable)
155141
$(BIN) serve --host $(HOST) --port $(PORT) --assets $(ASSETS)
156142

README.md

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -117,35 +117,6 @@ of the chart — **instrument gauges**, custom overlays, routes, and more — wi
117117
forking the core. NMEA 0183 own-ship and AIS are the first slice of that; expect
118118
the surface to grow and change.
119119

120-
## 🐳 Run with Docker
121-
122-
The simplest way to run chartplotter — and the primary path for the
123-
**server-hub-on-a-boat** model (a Raspberry Pi, laptop, or mini PC that holds all
124-
chart state while every screen just points a browser at it) — is the published
125-
container image:
126-
127-
```sh
128-
docker run -p 8080:8080 -v chartplotter-data:/data \
129-
ghcr.io/beetlebugorg/chartplotter
130-
# open http://localhost:8080
131-
```
132-
133-
Or with Docker Compose ([`compose.yaml`](compose.yaml)):
134-
135-
```sh
136-
docker compose up -d
137-
```
138-
139-
The image is **multi-arch** (`linux/amd64` + `linux/arm64`), so the same command
140-
runs on a Raspberry Pi and on an amd64 box. It's built `FROM scratch` around a
141-
**fully-static musl binary**, so it's tiny — essentially just the ~26 MB binary
142-
plus a CA bundle. The named `/data` volume holds the ENC source, baked tiles, and
143-
settings, and survives image upgrades. **macOS / Windows** users run the same
144-
image via **Docker Desktop** — no native Mac/Windows binary needed.
145-
146-
Native binaries (below) remain available as a secondary option for bare-metal
147-
installs.
148-
149120
## 📦 Install & build
150121

151122
**Download a binary.** Every tagged release publishes a self-contained
@@ -154,8 +125,7 @@ installs.
154125
the archive for your platform and run it — the S-101 catalogue and web frontend
155126
are baked in, so you supply only the ENC cells. **macOS** is not shipped as a
156127
prebuilt binary (the engine links Apple frameworks Zig can't cross-compile) — Mac
157-
users run the [Docker image](#-run-with-docker) via Docker Desktop, or build from
158-
source below.
128+
users build from source below.
159129

160130
Those published binaries embed the **IHO S-101 Portrayal and Feature Catalogues**
161131
(compiled into libtile57 from the IHO's own GitHub repositories, which declare no
@@ -278,16 +248,8 @@ make vet # go vet ./...
278248
make fmt # gofmt -w .
279249
make serve # build + serve web/ on :8080
280250
make xbuild # cross-compile with `zig cc` (linux + windows, amd64/arm64)
281-
make musl # fully-static musl binaries (linux amd64+arm64) for the Docker image
282251
```
283252

284-
The container image is built `FROM scratch` around the static musl binary (`make
285-
musl` / the [`Dockerfile`](Dockerfile)); the engine is git-cloned inside the
286-
builder, so no sibling checkout is needed to `docker build`. `zig cc`
287-
cross-compiles both arches from one native builder — no QEMU — and
288-
[`.github/workflows/docker.yml`](.github/workflows/docker.yml) pushes the
289-
multi-arch image to GHCR on each `v*` tag.
290-
291253
CGO is required — libtile57 is the sole tile/portrayal engine, so
292254
`CGO_ENABLED=0` does not build. Cross-compilation still works with **Zig as the
293255
C toolchain** (`make xbuild` covers linux and windows; darwin must be built

compose.yaml

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)