An optimized jekyll docker image (etelej/jekyll) for building Jekyll containers for Github Pages. Helpful in developing manually built Jekyll Github Pages without much overhead, or having to install Jekyll's multiple dependencies.
Creating the Jekyll container:
Simply run this command from within your githubpages directory:
docker run --rm -it -p 4000:4000 -v "$PWD":/app -w /app etelej/jekyll
This creates a disposable container (--rm
), emulates an interactive terminal (-it
), forwards host's port 4000 to container's port 4000 (-p 4000:4000
), maps working directory on host to a read-write volume in container (-v "$PWD":/app
), sets the mapped volume as the working directory (-w /app
), creates container from the docker image (etelej/jekyll:latest
) and starts the jekyll server as the main docker process (bundle exec jekyll serve
defined in Dockerfile).
To use docker-compose
via the repo's docker-compose.yml
, edit the docker-compose.yml
file to replace my jekyll site directory with yours (absolute path preferable):
Edit docker-compose.yml from:
volumes:
- /home/chief/workspaces/github.com/peteretelej.github.io:/code
To:
volumes:
- /path/to/your/jekyllsite:/code
Run docker-compose:
docker-compose run --rm jekyll/container
Build your image
docker build -t YOURNAME/jekyll .
Run your image
cd your-jekyll-app-directory/
docker run --rm -it -p 4000:4000 -v "$PWD":/app -w /app YOURNAME/jekyll
Push your image
docker push YOURNAME/jekyll