pages-gem icon indicating copy to clipboard operation
pages-gem copied to clipboard

Feature request: link this repository to dockerhub

Open MetalArend opened this issue 6 years ago • 2 comments

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.

MetalArend avatar Jun 12 '19 06:06 MetalArend

It seems this is not possible anymore, since the ARG RUBY_VERSION in the new Dockerfile has no default value.

MetalArend avatar Aug 12 '20 10:08 MetalArend

the ARG RUBY_VERSION in the new Dockerfile has no default value.

@MetalArend that's been fixed by @ cdlewis in #706 :)

waldyrious avatar Feb 09 '21 19:02 waldyrious