Dockerfiles for React.js apps


Develpment

Dockerfile.dev

FROM node:alpine

RUN apk update && apk upgrade && \
    apk add --no-cache bash git vim

WORKDIR '/project'

COPY ./package*.json .
RUN npm install

COPY . .

CMD ["npm", "run", "start"]

$ docker build -t marley/docker-react -f Dockerfile.dev .

$ docker run -p 3000:3000 marley/docker-react

or

$ docker run -p 3000:3000 -v /project/node_modules -v $(pwd):/project marley/docker-react

or

$ docker run -it -p 3000:3000 -v /project/node_modules -v $(pwd):/project marley/docker-react bash


Tests

$ docker run -it <image_id> npm run test


Production

Dockerfile

FROM node:alpine as builder
WORKDIR '/project'

COPY ./package.json .
RUN npm install
COPY . .
RUN npm run build

FROM nginx
COPY --from=builder /project/build /usr/share/nginx/html


$ docker build .
$ docker run -p 8080:80 <image_id>


From video course

[Stephen Grider] Docker and Kubernetes: The Complete Guide [ENG, 2018]