DEV Community

leroykayanda
leroykayanda

Posted on • Updated on

Dockerfile for a node app

FROM public.ecr.aws/docker/library/node:16 as builder
WORKDIR /app
COPY . .
RUN npm ci
RUN npm run build

# Using multi-stage build, take only static web assets and place them in a nginx container
# Bundle static assets with nginx
FROM nginx:1.23.2-alpine as production
# Copy built assets from `builder` image
COPY --from=builder /app/build /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
# Start nginx
CMD ["nginx", "-g", "daemon off;"]
Enter fullscreen mode Exit fullscreen mode

nginx.conf

server {
  listen 80;

  location / {
    root /usr/share/nginx/html/;
    include /etc/nginx/mime.types;
    try_files $uri $uri/ /index.html;
  }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)