Dockerfile Build Errors With React Static Site In App Platform

Posted March 19, 2021 912 views
DockerReactDigitalOcean App Platform

I’m using App Platform to serve a React (using Create React App) static website. I’m using Docker in order to have predictable and abstracted builds (as well as other reasons)

But whenever I try to deploy it to DO’s App Platform I get build errors essentially saying that it can’t find the output directory. Such as ‘client | 19:44:34 ! /app/build does not exist within the built container’


name: project_name

  - name: client
    dockerfile_path: ./client/Dockerfile
      repo: valencian-digital/unique-expressions
      branch: master
    source_dir: client
    output_dir: /app/build


FROM node:14-alpine


ENV NODE_ENV=production

COPY . .

CMD ["npm", "run", "build"]

How can I get a Dockerfile to work property with App Platform static sites?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

To get this to work you should move the npm run build to be a RUN rather than CMD. The app platform build process will run all the steps that are part of a docker build. The CMD is set as a default start command for the container, but doesn’t get executed during the build process. The process to build a static site copies the files out of the built docker container image.

  • Yup, that’s the solution. This is the correct Dockerfile

    FROM node:14-alpine
    WORKDIR /app
    COPY ./package.json ./
    ENV NODE_ENV=production
    RUN npm install --production=false
    COPY . .
    RUN npm run build