gatsby-docker icon indicating copy to clipboard operation
gatsby-docker copied to clipboard

Develop & Build GatsbyJS static sites within Docker.

gatsby-docker

Develop & Build GatsbyJS static sites within a Docker container.

  • 🚮 Clutter-free host machine: No need to install Node/Gatsby/Webpack/etc on your host machine! Only Docker required (tested on v17.12.0).
  • 🏗 Easy setup: Automatic GatsbyJS site initializion with gatsby-starter-default (unless already initialized)
  • 👍 Simple CLI API: develop/stage/build
  • 🆕 Recent NodeJS: Container based on NodeJS v9.5 running in Alpine Linux
  • 📃 MIT-licensed

Setup

NOTE: Your GatsbyJS site will be created into $(pwd)/site automatically.

Add these to your .gitignore:

site/node_modules
site/public
site/.cache

Usage

Develop

docker run -it --rm -v $(pwd)/site:/site -p 8000:8000 aripalo/gatsby-docker develop

Stage

In other words, build and serve:

docker run -it --rm -v $(pwd)/site:/site -p 8000:8000 aripalo/gatsby-docker stage

Build

Builds production ready site into site/public:

docker run -it --rm -v $(pwd)/site:/site -p 8000:8000 aripalo/gatsby-docker build

Run arbitary command inside the container

docker run -it --rm -v $(pwd)/site:/site -p 8000:8000 aripalo/gatsby-docker <YOUR-COMMAND-HERE>

For example to install a new NPM-module: docker run -it --rm -v $(pwd)/site:/site aripalo/gatsby-docker yarn add gatsby-transformer-yaml