From 0d7f29606fcca0c67047d105b718efd6580c427b Mon Sep 17 00:00:00 2001 From: Alireza Date: Tue, 20 Sep 2022 23:49:22 -0400 Subject: [PATCH] fix: dockerfile to include preinstall (#2943) --- Dockerfile | 51 ++++++++++----------------------------------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/Dockerfile b/Dockerfile index af7b97aca..508790cb9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,44 +1,23 @@ -# This dockerfile is used to publish the `ohif/viewer` image on dockerhub. -# -# It's a good example of how to build our static application and package it -# with a web server capable of hosting it as static content. -# -# docker build -# -------------- -# If you would like to use this dockerfile to build and tag an image, make sure -# you set the context to the project's root directory: -# https://docs.docker.com/engine/reference/commandline/build/ -# -# -# SUMMARY -# -------------- -# This dockerfile has two stages: -# -# 1. Building the React application for production -# 2. Setting up our Nginx (Alpine Linux) image w/ step one's output -# - # Stage 1: Build the application # docker build -t ohif/viewer:latest . -FROM node:14.3.0-slim as json-copier +FROM node:16.15.0-slim as json-copier RUN mkdir /usr/src/app WORKDIR /usr/src/app - -COPY ["package.json", "yarn.lock", "./"] +COPY ["package.json", "yarn.lock", "preinstall.js", "./"] COPY extensions /usr/src/app/extensions COPY modes /usr/src/app/modes COPY platform /usr/src/app/platform # Find and remove non-package.json files -RUN find extensions \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf -RUN find modes \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf -RUN find platform \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf +#RUN find extensions \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf +#RUN find modes \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf +#RUN find platform \! -name "package.json" -mindepth 2 -maxdepth 2 -print | xargs rm -rf # Copy Files -FROM node:14.3.0-slim as builder +FROM node:16.15.0-slim as builder RUN mkdir /usr/src/app WORKDIR /usr/src/app @@ -46,30 +25,20 @@ COPY --from=json-copier /usr/src/app . # Run the install before copying the rest of the files RUN yarn config set workspaces-experimental true -RUN yarn install --frozen-lockfile +RUN yarn install --frozen-lockfile --verbose COPY . . # To restore workspaces symlinks -RUN yarn install --frozen-lockfile +RUN yarn install --frozen-lockfile --verbose ENV PATH /usr/src/app/node_modules/.bin:$PATH ENV QUICK_BUILD true -# ENV GENERATE_SOURCEMAP=false -# ENV REACT_APP_CONFIG=config/default.js - -RUN yarn run build + @@ -62,7 +61,7 @@ RUN yarn run build # Stage 3: Bundle the built application into a Docker container # which runs Nginx using Alpine Linux -FROM nginx:1.15.5-alpine +FROM nginx:1.15.5-alpine as final RUN apk add --no-cache bash RUN rm -rf /etc/nginx/conf.d COPY .docker/Viewer-v2.x /etc/nginx/conf.d -COPY .docker/Viewer-v2.x/entrypoint.sh /usr/src/ -RUN chmod 777 /usr/src/entrypoint.sh -COPY --from=builder /usr/src/app/platform/viewer/dist /usr/share/nginx/html -EXPOSE 80 -EXPOSE 443 -ENTRYPOINT ["/usr/src/entrypoint.sh"] -CMD ["nginx", "-g", "daemon off;"]