Problem 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’
App.yaml
name: project_name
static_sites:
- name: client
dockerfile_path: ./client/Dockerfile
github:
repo: valencian-digital/unique-expressions
branch: master
source_dir: client
output_dir: /app/build
Dockerfile
FROM node:14-alpine
WORKDIR /app
VOLUME /app
ENV NODE_ENV=production
COPY . .
CMD ["npm", "run", "build"]
Question 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.
Click below to sign up and get $100 of credit to try our products over 60 days!
To get this to work you should move the
npm run build
to be aRUN
rather thanCMD
. The app platform build process will run all the steps that are part of a docker build. TheCMD
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.