Code Monkey home page Code Monkey logo

docker-hugo's Introduction

Hugo

Docker Pulls

Truly minimal Docker images for Hugo with batteries included. These images sets bind when started as server, otherwise no magic.

Latest tags

Default minimal image based upon Busybox:

  • Aliases: latest, busybox, busybox-ci, ci, busybox-onbuild, onbuild
  • Hugo 0.83.1: 0.83.1-busybox, 0.83.1, 0.83.1-busybox-ci, 0.83.1-ci, 0.83.1-busybox-onbuild, 0.83.1-onbuild
  • Hugo 0.82.1: 0.82.1-busybox, 0.82.1, 0.82.1-busybox-ci, 0.82.1-ci, 0.82.1-busybox-onbuild, 0.82.1-onbuild
  • Hugo 0.81.0: 0.81.0-busybox, 0.81.0, 0.81.0-busybox-ci, 0.81.0-ci, 0.81.0-busybox-onbuild, 0.81.0-onbuild

Minimal image based upon Alpine:

  • Aliases: alpine, alpine-ci, alpine-onbuild, ext-alpine, ext-alpine-ci, ext-alpine-onbuild
  • Hugo 0.83.1: 0.83.1-alpine, 0.83.1-alpine-ci, 0.83.1-alpine-onbuild, 0.83.1-ext-alpine, 0.83.1-ext-alpine-ci, 0.83.1-ext-alpine-onbuild
  • Hugo 0.82.1: 0.82.1-alpine, 0.82.1-alpine-ci, 0.82.1-alpine-onbuild, 0.82.1-ext-alpine, 0.82.1-ext-alpine-ci, 0.82.1-ext-alpine-onbuild

Minimal image based upon Alpine with Asciidoctor installed:

  • Aliases: asciidoctor, asciidoctor-ci, asciidoctor-onbuild, ext-asciidoctor, ext-asciidoctor-ci, ext-asciidoctor-onbuild
  • Hugo 0.83.1: 0.83.1-asciidoctor, 0.83.1-asciidoctor-onbuild, 0.83.1-asciidoctor-ci, 0.83.1-ext-asciidoctor, 0.83.1-ext-asciidoctor-ci, 0.83.1-ext-asciidoctor-onbuild
  • Hugo 0.82.1: 0.82.1-asciidoctor, 0.82.1-asciidoctor-onbuild, 0.82.1-asciidoctor-ci, 0.82.1-ext-asciidoctor, 0.82.1-ext-asciidoctor-ci, 0.82.1-ext-asciidoctor-onbuild

Minimal image based upon Alpine with Pandoc installed:

  • Aliases: pandoc, pandoc-ci, pandoc-onbuild, ext-pandoc, ext-pandoc-ci, ext-pandoc-onbuild
  • Hugo 0.83.1: 0.83.1-pandoc, 0.83.1-pandoc-ci, 0.83.1-pandoc-onbuild, 0.83.1-ext-pandoc, 0.83.1-ext-pandoc-ci, 0.83.1-ext-pandoc-onbuild
  • Hugo 0.82.1: 0.82.1-pandoc, 0.82.1-pandoc-ci, 0.82.1-pandoc-onbuild, 0.82.1-ext-pandoc, 0.82.1-ext-pandoc-ci, 0.82.1-ext-pandoc-onbuild

Image based upon Debian:

  • Aliases: debian, debian-ci, debian-onbuild, ext, latest-ext, ext-debian, ext-debian-ci, ext-ci, ext-debian-onbuild, ext-onbuild
  • Hugo 0.83.1: 0.83.1-debian, 0.83.1-debian-ci, 0.83.1-debian-onbuild, 0.83.1-ext, 0.83.1-ext-debian, 0.83.1-ext-debian-ci, 0.83.1-ext-ci, 0.83.1-ext-debian-onbuild, 0.83.1-ext-onbuild
  • Hugo 0.82.1: 0.82.1-debian, 0.82.1-debian-ci, 0.82.1-debian-onbuild, 0.82.1-ext, 0.82.1-ext-debian, 0.82.1-ext-debian-ci, 0.82.1-ext-ci, 0.82.1-ext-debian-onbuild, 0.82.1-ext-onbuild

Image based upon Ubuntu:

  • Aliases: ubuntu, ubuntu-ci, ubuntu-onbuild, ext-ubuntu, ext-ubuntu-ci, ext-ubuntu-onbuild
  • Hugo 0.83.1: 0.83.1-ubuntu, 0.83.1-ubuntu-ci, 0.83.1-ubuntu-onbuild, 0.83.1-ext-ubuntu, 0.83.1-ext-ubuntu-ci, 0.83.1-ext-ubuntu-onbuild
  • Hugo 0.82.1: 0.82.1-ubuntu, 0.82.1-ubuntu-ci, 0.82.1-ubuntu-onbuild, 0.82.1-ext-ubuntu, 0.82.1-ext-ubuntu-ci, 0.82.1-ext-ubuntu-onbuild

Looking for older tags? Please see the complete list of tags.

Using image

This image does not try to do any fancy. Users may use Hugo just as they are used to.

Command line

Normal build:

docker run --rm -it \
  -v $(pwd):/src \
  klakegg/hugo:0.83.1

Run server:

docker run --rm -it \
  -v $(pwd):/src \
  -p 1313:1313 \
  klakegg/hugo:0.83.1 \
  server

docker-compose

Normal build:

  build:
    image: klakegg/hugo:0.83.1
    volumes:
      - ".:/src"

Run server:

  server:
    image: klakegg/hugo:0.83.1
    command: server
    volumes:
      - ".:/src"
    ports:
      - "1313:1313"

Github Actions

All versions and variants published using this repository may be used in any combination.

Simple configuration for e.g. .github/workflows/hugo.yml:

name: Hugo

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1

    - name: hugo
      uses: klakegg/[email protected]

Find out more in klakegg/actions-hugo.

Travis CI

Simple configuration for .travis.yml:

language: bash

services:
- docker

script:
- docker run --rm -i \
    -v $(pwd):/src \
    klakegg/hugo:0.83.1

The bash environment is used for faster loading before Travis is ready to trigger Docker.

Hugo shell

A Hugo shell is made available in the Alpine/Debian/Ubuntu images (including Asciidoctor/Pandoc images). Hugo shell is bash and Hugo completion.

To get into a shell for your site:

docker run --rm -it \
  -v $(pwd):/src \
  klakegg/hugo:0.83.1-alpine \
  shell

Hugo extended edition

The extended edition is used in those images containing ext in the name. Except use of extended edition and additional tools are those images exactly the same as those using the normal edition.

Table of Hugo extention features and the version when images first support the feature:

Feature Alpine Debian Ubuntu
Hugo extended 0.43 0.43 0.43
PostCSS 0.56.0 0.43 0.43
NodeJS 0.54.0 0.54.0 0.54.0
Yarn 0.54.0 0.54.0 0.54.0
Git 0.56.0 0.56.0 0.56.0
Autoprefixer 0.57.0 0.57.0 0.57.0
Go 0.68.0 0.68.0 0.68.0
Babel 0.71.0 0.71.0 0.71.0
rst2html 0.81.0 0.81.0 0.81.0

Users of google/docsy may use the extended images as of version 0.57.2 to build their site.

Using ONBUILD image

The onbuild images adds content of the folder of your Dockerfile into /src and builds to the /target (prior to 0.68.0: /onbuild) folder.

Example Dockerfile for your project where the site is made into an nginx image (Docker 17.05-ce or newer):

FROM klakegg/hugo:0.83.1-onbuild AS hugo

FROM nginx
COPY --from=hugo /target /usr/share/nginx/html

Available arguments for docker build:

  • HUGO_CMD - Commands passed to Hugo during build. Default empty
  • HUGO_DESTINATION_ARG - Location of output folder. Default: /target
  • HUGO_ENV_ARG - Selecting environment ("DEV"/"production"). Default: DEV
  • HUGO_DIR - Selecting Hugo root directory. Default: /src

Using CI image (0.77.0 or newer)

The ci images are prepared for use in configuration for continuous integration/deployment.

Difference between normal images and ci images:

  • Environment variable HUGO_ENV: production
  • Entrypoint is empty

Using Pandoc

Hugo images with Pandoc support are made available for users wanting to use Pandoc in combination with Hugo.

Hugo triggers Pandoc with pandoc --mathjax. Some users may want to use other arguments, so to accommodate such a need is an alias pandoc created with the content of HUGO_PANDOC (default: pandoc-default) upon initiation. The pandoc executable is renamed to pandoc-default as a new pandoc script is provided to hanle the HUGO_PANDOC evironment variable.

Example of explicit setting pandoc alias:

docker run --rm -it \
  -v $(pwd):/src \
  -e HUGO_PANDOC="pandoc-default --strip-empty-paragraphs" \
  klakegg/hugo:0.83.1-pandoc

Overriding entrypoint

Those wanting to override entrypoint in the image may easily do so.

Default entrypoint is hugo, a small script wrapping the official Hugo software. If you want to use the official software without any wrapping may you use hugo-official as entrypoint.

On command line using --entrypoint:

docker run --rm -it \
  -v $(pwd):/src \
  --entrypoint hugo-official \
  klakegg/hugo:0.83.1

In docker-compose using entrypoint:

  build:
    image: klakegg/hugo:0.83.1
    entrypoint: hugo-official
    volumes:
      - ".:/src"

Versions

Software Version
Go 1.16.2
NodeJS 14.16.0
Pandoc 2.12
Yarn 1.22.10

Configuration

Environment variables:

  • HUGO_BIND - Bind address for server. Default: 0.0.0.0
  • HUGO_CACHEDIR - Cache directory for modules. Default: /tmp
  • HUGO_DESTINATION - Location of output folder. Default: public
  • HUGO_PANDOC - Pandoc command to be triggered. Default: pandoc-default
  • HUGO_ENV - Selecting environment ("DEV"/"production"). Default: DEV
  • HUGO_VERSION - Version of Hugo bundled in image. Default: Current version
  • HUGO_VERSION_OVERRIDE - Version of Hugo to use. Requires images for Hugo 0.71.1 or newer. Default: blank

Ports:

  • 1313/tcp

docker-hugo's People

Contributors

dchesterton avatar jakejarvis avatar jbergler avatar klakegg avatar kusha avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.