- Docker Desktop installed and running
- Jekyll: 3.10.0 (latest supported by GitHub Pages)
- Ruby: 3.1.x (via Jekyll 4.2.2 image)
- Bundler: 2.6.9
- github-pages: 232 (latest)
- html-proofer: 5.1.1
-
Start the development server:
just serve
Or manually:
docker compose up --build
-
Access the site:
- Website: http://localhost:4000
- LiveReload is enabled on port 35729
-
Stop the server:
- Press
Ctrl+Cin the terminal
- Press
- Dockerfile: Custom Jekyll image with Bundler
- docker-compose.yml: Service configuration with:
- Volume mounting for live code changes
- Bundle cache persistence (faster rebuilds)
- LiveReload support
- Development configuration merged (_config.yml + _config_dev.yml)
- Drafts and future posts enabled
docker compose builddocker compose up -ddocker compose logs -fdocker compose downdocker compose down -v
docker compose up --builddocker compose exec netlicensing bundle exec jekyll doctor
docker compose exec netlicensing bundle exec htmlproofer ./_sitedocker compose exec netlicensing bashIf port 4000 is already taken, modify docker-compose.yml:
ports:
- "4001:4000" # Change host port
- "35730:35729"Clear the bundle cache and rebuild:
docker compose down -v
docker compose up --buildEnsure volume mounting is working:
docker compose exec netlicensing ls -la /srv/jekyllStart Docker Desktop before running any docker commands.
- Volume caching (
cachedoption) improves macOS performance - Bundle cache persists between container restarts
- Incremental builds speed up regeneration
- LiveReload auto-refreshes browser on changes