wanderer icon indicating copy to clipboard operation
wanderer copied to clipboard

Introduce new multi stage Docker image for DB component

Open Kami opened this issue 9 months ago • 0 comments

Description

This pull request updates main Dockerfile to utilize multiple stages and build the binary inside the image as part of the build stage.

This should result in better developer experience and more reproducible builds.

If users want to use binary which has been pre-compiled locally outside the image (aka on host), they can do that Dockerfile.pre_compiled Dockerfile.

That one is almost the same as the original Dockerfile. I just added a check to fail in case the binary hasn't been correctly compiled locally (e.g. with xgo for musl or using CGO_ENABLED=0).

I also included a GHA workflow which builds the images to verify those files are working.

We could extend the original release workflow to build and push development version of images to Docker Hub / GHCR on each main branch run (we can use git commit sha as the image tag).

TODO

  • [ ] Get consensus on this change
  • [ ] Update docs
  • [ ] Verify Docker layer caching works
  • [ ] Update release GHA workflow

Related PRs

  • PR which updates docs with info on how to compile the binary so it works inside the Docker image - https://github.com/Flomp/wanderer/pull/211

Links

  • Example CI run in my fork - https://github.com/Kami/wanderer/actions/runs/14018226535

Kami avatar Mar 23 '25 10:03 Kami