FROM 193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/node:16.17.0-alpine3.16 as build RUN npm install webpack -g WORKDIR /app # Install packages first to utilize docker cache COPY package.json /app/package.json COPY yarn.lock /app/yarn.lock RUN yarn install COPY config.template.js /app/config.js COPY . /app RUN yarn lint RUN yarn run build FROM 193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/nginx:1.23.3-alpine COPY --from=build /app/dist /usr/share/nginx/html RUN adduser -u 4000 non-root-user -D '' RUN chown -R 4000:4000 /var/cache/nginx \ && chown -R 4000:4000 /etc/nginx/conf.d/ \ && chown -R 4000:4000 /usr/share/nginx \ && chmod -R g+w /var/cache/nginx \ && touch /var/run/nginx.pid \ && chown -R 4000:4000 /var/run/nginx.pid \ && ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log RUN rm /etc/nginx/conf.d/default.conf USER 4000 COPY nginx/nginx.conf /etc/nginx/conf.d COPY entrypoint.sh / USER 0 RUN chmod +x entrypoint.sh EXPOSE 8080 ENTRYPOINT ["/entrypoint.sh"] USER 4000 CMD ["nginx", "-g", "daemon off;"]