From db4e5a89f9928e14a31fed1cd0a13fd0951069c6 Mon Sep 17 00:00:00 2001 From: Maksim Eltyshev Date: Wed, 30 Nov 2022 02:50:38 +0100 Subject: [PATCH] fix: Improve building --- .dockerignore | 28 +++++++++++++++++++++++----- Dockerfile | 34 +++++++++++++++++++++------------- client/package-lock.json | 8 ++------ client/package.json | 2 +- 4 files changed, 47 insertions(+), 25 deletions(-) diff --git a/.dockerignore b/.dockerignore index 1a80f292..92564646 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,11 +1,29 @@ -*/node_modules -*/.gitignore */README.md +*/.gitignore +*/node_modules **/.DS_Store -**/.gitkeep + +server/**/.gitkeep + +server/.env +server/.editorconfig +server/.eslintignore +server/.npmrc +server/test +server/logs +server/.tmp + +server/views/* server/public/* -server/views/* -server/logs +!server/public/user-avatars +server/public/user-avatars/* +!server/public/project-background-images +server/public/project-background-images/* + +server/private/* +!server/private/attachments +server/private/attachments/* + client/build diff --git a/Dockerfile b/Dockerfile index 6f6677e2..fd4f593b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,40 @@ -FROM node:lts AS client-builder +FROM ghcr.io/plankanban/planka:base-latest as server-dependencies WORKDIR /app -COPY client/package.json client/package-lock.json ./ +COPY server/package.json server/package-lock.json . RUN npm install npm@latest --global \ - && npm install + && npm clean-install --omit=development + +FROM node:lts AS client + +WORKDIR /app + +COPY client/package.json client/package-lock.json . + +RUN npm install npm@latest --global \ + && npm clean-install --omit=development COPY client . RUN DISABLE_ESLINT_PLUGIN=true npm run build FROM ghcr.io/plankanban/planka:base-latest +RUN apk del vips-dependencies --purge + +USER node WORKDIR /app -COPY server/.npmrc server/package.json server/package-lock.json ./ +COPY --chown=node:node docker-start.sh start.sh +COPY --chown=node:node server . -RUN npm install npm@latest --global \ - && npm install --production \ - && apk del vips-dependencies --purge +RUN mv .env.sample .env -COPY docker-start.sh start.sh -COPY server . +COPY --from=server-dependencies --chown=node:node /app/node_modules node_modules -RUN cp .env.sample .env - -COPY --from=client-builder /app/build public -COPY --from=client-builder /app/build/index.html views/index.ejs +COPY --from=client --chown=node:node /app/build public +COPY --from=client --chown=node:node /app/build/index.html views/index.ejs VOLUME /app/public/user-avatars VOLUME /app/public/project-background-images diff --git a/client/package-lock.json b/client/package-lock.json index 43fb63ca..f206a645 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -22,6 +22,7 @@ "photoswipe": "^5.3.3", "prop-types": "^15.8.1", "react": "^18.2.0", + "react-app-rewired": "^2.2.1", "react-beautiful-dnd": "^13.1.1", "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", @@ -63,7 +64,6 @@ "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "react-app-rewired": "^2.2.1", "react-test-renderer": "^18.2.0" } }, @@ -18972,7 +18972,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==", - "dev": true, "dependencies": { "semver": "^5.6.0" }, @@ -18987,7 +18986,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, "bin": { "semver": "bin/semver" } @@ -37164,7 +37162,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==", - "dev": true, "requires": { "semver": "^5.6.0" }, @@ -37172,8 +37169,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, diff --git a/client/package.json b/client/package.json index 8807f072..82d94e12 100755 --- a/client/package.json +++ b/client/package.json @@ -69,6 +69,7 @@ "photoswipe": "^5.3.3", "prop-types": "^15.8.1", "react": "^18.2.0", + "react-app-rewired": "^2.2.1", "react-beautiful-dnd": "^13.1.1", "react-datepicker": "^4.8.0", "react-dom": "^18.2.0", @@ -110,7 +111,6 @@ "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.31.11", "eslint-plugin-react-hooks": "^4.6.0", - "react-app-rewired": "^2.2.1", "react-test-renderer": "^18.2.0" } }