github / github/pages-gem

Feature request: link this repository to dockerhub

Open
#645 2 comments 4 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
1.9k
Forks
360
PR merge metrics
No merged PRs in 30d

Description

Until today, I have been using any of the many github-pages images out there. Today however, I encountered a bug in the latest versions, and I was trying to find where it came from. The bug is still there (something with an {% else %} not being recognised), and already reported, but while looking I also stumbled on this pages-gem repository, and saw the Dockerfile in there. This means there is an official docker image I can use. But it seems this repository is not yet linked to a dockerhub organisation. Would it be possible to link a dockerhub "github" organisation to this repository, so we could always have an up-to-date docker image on dockerhub?

Right now, I have forked this repository, to try and see if it was possible to use the repository as is in dockerhub. And yes, it takes only a few minutes to set up, but once it's there, it's free, needs no maintenance, and will automatically build a new image based on the latest tag, starting with the next tag you'll add to this repository. The setup I use:
```
Source repository: phpqa/pages-gem
Build rule 1:
Source type: tag
Source: /^(v[0-9.]+)$/
Docker Tag: {\1}
Dockerfile location: Dockerfile
Build Context (only available on edit): /
Autobuild: true
Build caching: true
Build rule 2:
Source type: tag
Source: /^(v[0-9.]+)$/
Docker Tag: {\1}-alpine
Dockerfile location: Dockerfile.alpine
Build Context (only available on edit): /
Autobuild: true
Build caching: true
```

This will build a docker image every time a new tag is added to the github repository. You can see the example at https://hub.docker.com/r/phpqa/github-pages-gem based on https://github.com/phpqa/pages-gem/releases/tag/v199

I use it with the following `docker-compose.yml` file, that will serve your site with a `docker-compose up -d` to `0.0.0.0:4000` (on a Mac, as there is a $PWD in there):
```
version: '3.7'

volumes:

website:
driver: local
driver_opts:
o: bind
type: none
device: $PWD/

services:
jekyll:
image: phpqa/github-pages-gem:v199
command: jekyll serve -H 0.0.0.0 -P 4000 --watch --force_polling --verbose
ports:
- target: 4000
published: 4000
protocol: tcp
mode: host
volumes:
- type: volume
source: website
target: /src/site
volume:
nocopy: true
```

You could also add some build hooks to also add a latest tag, but that would only be an improvement.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.