chore: replace abandoned jekyll image with local Dockerfile#120
chore: replace abandoned jekyll image with local Dockerfile#120MateoLostanlen wants to merge 3 commits into
Conversation
fe51
left a comment
There was a problem hiding this comment.
Thank you for opening the PR.
However, I found an issue while testing on Apple Silicon (aarch64)
The Gemfile.lock committed here was generated on a different platform — it specifies BUNDLED WITH 1.17.2 (incompatible with Ruby 3.3) and github-pages 228 (no aarch64-linux build available), causing docker compose up --build to fail.
Root cause: Gemfile.lock is gitignored, so the lockfile you tested with locally wasn't included in the PR.
Tradeoff:
-
OPTION A : Track the lockfile : Reproducible builds, but requires keeping the lockfile up-to-date and platform-compatible -> fragile across machines.
-
OPTION B : Drop the lockfile from the Docker build : Simpler and always works. Change COPY Gemfile Gemfile.lock ./ → COPY Gemfile ./ and add RUN gem install bundler before bundle install. Slightly less reproducible, but as GitHub Pages controls its own gem versions anyway so the lockfile's "match exactly" guarantee is weak in practice.
What do you think ?
bretfisher/jekyll-serve(unmaintained, ignores our Gemfile.lock and tries to install ancient github-pages 28 → posix-spawn that no longer compiles) with a local Dockerfile based onruby:3.3-slim.bundle installruns against the actualGemfile.lock(github-pages 232 / jekyll 3.10.0), so the dev image matches what GitHub Pages builds..dockerignoreto keep_site,.gitand caches out of the build context.docker compose up --buildserves http://localhost:4000 with HTTP 200, auto-reload working.