From 118044bcf307c272237c887669ae87dcc215b5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sch=C3=B6n?= Date: Mon, 6 Jun 2022 19:39:36 +0200 Subject: [PATCH] use meshcentral files from local repository instead of the npm module --- .dockerignore | 9 +++++++++ docker/Dockerfile | 29 +++++++++++++++++++++-------- docker/startup.sh | 13 ++++++------- 3 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..8615a470 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.github/ +.vscode/ +docs/ +.gitignore +.gitlab-ci.yml +*.bat +*.sln +*.njsproj +*.md diff --git a/docker/Dockerfile b/docker/Dockerfile index 9ab749f6..49eb56a3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -5,17 +5,30 @@ FROM node:slim #Add non-root user, add installation directories and assign proper permissions RUN mkdir -p /opt/meshcentral -#meshcentral installation +# meshcentral installation WORKDIR /opt/meshcentral -RUN npm install meshcentral -#Install dependencies for plugins -RUN npm install nedb -COPY config.json.template /opt/meshcentral/config.json.template -COPY startup.sh startup.sh -#environment variables +RUN mkdir /opt/meshcentral/meshcentral +COPY ./ /opt/meshcentral/meshcentral/ +COPY ./docker/config.json.template /opt/meshcentral/config.json.template +COPY ./docker/startup.sh startup.sh +RUN rm -rf ./docker + +# install dependencies from package.json +RUN cd meshcentral && npm install + +# install dependencies for plugins +RUN cd meshcentral && npm install nedb + +# minify files - first try throws Error: Cannot find module 'jsdom' +RUN cd meshcentral/translate && node translate.js minifyall; exit 0 +RUN cd meshcentral/translate && node translate.js minifyall + +# translate +RUN cd meshcentral/translate && node translate.js translateall +RUN cd meshcentral/translate && node translate.js extractall EXPOSE 80 443 @@ -23,4 +36,4 @@ EXPOSE 80 443 VOLUME /opt/meshcentral/meshcentral-data VOLUME /opt/meshcentral/meshcentral-files -CMD ["bash","/opt/meshcentral/startup.sh"] +CMD ["bash", "/opt/meshcentral/startup.sh"] diff --git a/docker/startup.sh b/docker/startup.sh index b0b3e555..54784772 100644 --- a/docker/startup.sh +++ b/docker/startup.sh @@ -11,7 +11,7 @@ export WEBRTC if [ -f "meshcentral-data/config.json" ] then - node node_modules/meshcentral + node meshcentral/meshcentral else cp config.json.template meshcentral-data/config.json sed -i "s/\"cert\": \"myserver.mydomain.com\"/\"cert\": \"$HOSTNAME\"/" meshcentral-data/config.json @@ -21,11 +21,10 @@ if [ -f "meshcentral-data/config.json" ] sed -i "s/\"minify\": true/\"minify\": \"$MINIFY\"/" meshcentral-data/config.json sed -i "s/\"WebRTC\": false/\"WebRTC\": \"$WEBRTC\"/" meshcentral-data/config.json sed -i "s/\"AllowFraming\": false/\"AllowFraming\": \"$IFRAME\"/" meshcentral-data/config.json - if [ "$REVERSE_PROXY" != "false" ] - then - sed -i "s/\"_certUrl\": \"my\.reverse\.proxy\"/\"certUrl\": \"https:\/\/$REVERSE_PROXY:$REVERSE_PROXY_TLS_PORT\"/" meshcentral-data/config.json - node node_modules/meshcentral - exit + if [ "$REVERSE_PROXY" != "false" ]; then + sed -i "s/\"_certUrl\": \"my\.reverse\.proxy\"/\"certUrl\": \"https:\/\/$REVERSE_PROXY:$REVERSE_PROXY_TLS_PORT\"/" meshcentral-data/config.json + node meshcentral/meshcentral + exit fi - node node_modules/meshcentral --cert "$HOSTNAME" + node meshcentral/meshcentral --cert "$HOSTNAME" fi \ No newline at end of file