DEV Community

Pavel
Pavel

Posted on • Edited on

Running GatsbyJS app in Docker container

Here is an example configuration we use for testing while developing Gatsby Shopify Storefront - lightning-fast Progressive Web App (PWA) storefront for Shopify.

A Dockerfile:

FROM node:13

WORKDIR /usr/src/app

COPY package.json .

RUN yarn global add gatsby-cli

RUN yarn install

COPY gatsby-config.js .

# Optionally, copy your .env file to the container filesystem
COPY .env .

EXPOSE 8000

CMD ["gatsby", "develop", "-H", "0.0.0.0"]
Enter fullscreen mode Exit fullscreen mode

Though it is not the case with our setup, you might need to copy your project files to the container as well. Use COPY . . command for this.

Build your image:

docker build . -t gatsbystorefront:1.0.1
Enter fullscreen mode Exit fullscreen mode

Run your container:

docker run -d -p 8000:8000 --name store gatsbystorefront:1.0.1
Enter fullscreen mode Exit fullscreen mode

Though this one is short. Hope it will help, cheers! 🎅🎄

Top comments (4)

Collapse
 
anselm94 profile image
Merbin J Anselm •

In particular -H 0.0.0.0 is very much required. Thanks! - stackoverflow.com/a/53195417/4486804

Collapse
 
avxkim profile image
Alexander Kim •

Why are you using develop for production? It's just gatsby build and you can serve it with nginx.

Collapse
 
flq profile image
Frank Quednau •

"Though it is not the case with our setup..." - alas, this is exactly the missing link for me :) I do not know how I can run the develop mode with the process running in the docker, but the Gatsby site being modifiable on my Computer...

Collapse
 
pradhumnapancholi profile image
Pradhumna Pancholi •

Any particular reason for using gatsby develop instead of gatsby build?