From 6ea1ec39582132675e2f1e7ef1e7327466d0a633 Mon Sep 17 00:00:00 2001 From: mrfry Date: Sun, 1 Aug 2021 13:18:35 +0200 Subject: [PATCH] Added docker stuff --- .dockerignore | 7 +++++++ Dockerfile | 15 +++++++++++++++ scripts/make.sh | 30 ++++++++++++++++++++---------- scripts/runDocker.sh | 18 ++++++++++++++++++ 4 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100755 scripts/runDocker.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5a97688 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +npm-debug.log +dist +stats +data +publicDirs +devel diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab4a483 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM node:16 + +WORKDIR /server +COPY package.json ./ +COPY package-lock.json ./ + +RUN npm i +COPY . . +RUN npm run export + +CMD [ "bash", "scripts/make.sh" ] +CMD [ "npm", "run", "start" ] + +EXPOSE 80 +EXPOSE 8080 diff --git a/scripts/make.sh b/scripts/make.sh index d3366d2..06262e3 100644 --- a/scripts/make.sh +++ b/scripts/make.sh @@ -17,6 +17,13 @@ checkFile() { fi } +function setupJson() { + if [ ! -f "$1" ]; then + echo "Setting up ${1}" + echo '{}' >"$1" + fi +} + makeNextSubmodule() { log "Making ${1}" pushd "submodules/${1}/" @@ -29,6 +36,7 @@ makeNextSubmodule() { checkFile "$PWD/src/server.ts" checkFile "$PWD/package.json" +checkFile "$PWD/package-lock.json" git pull git submodule update --init --recursive @@ -63,20 +71,22 @@ mkdir -p data/dbs touch data/nolog #JSONS -echo '{}' >stats/stats -echo '{}' >stats/vstats -echo '{}' >stats/idstats -echo '{}' >stats/idvstats -echo '{}' >publicDirs/qminingPublic/userSpecificMotd.json -echo '{}' >publicDirs/qminingPublic/news.json +setupJson stats/stats +setupJson stats/vstats +setupJson stats/idstats +setupJson stats/idvstats +setupJson publicDirs/qminingPublic/userSpecificMotd.json +setupJson publicDirs/qminingPublic/news.json touch publicDirs/qminingPublic/version touch publicDirs/qminingPublic/motd -pushd src/standaloneUtils -NS_LOGLEVEL=2 node dbSetup.js -mv *db ../../data/dbs -popd +if [ -z "$(ls -A ./src/standaloneUtils)" ]; then + pushd src/standaloneUtils + NS_LOGLEVEL=2 node dbSetup.js + mv *db ../../data/dbs + popd +fi hr echo "Done!" diff --git a/scripts/runDocker.sh b/scripts/runDocker.sh new file mode 100755 index 0000000..ca16d5d --- /dev/null +++ b/scripts/runDocker.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ "$1" == "build" ]; then + docker build . -t qminer/mrfrys-node-server + exit +elif [ "$1" == "run" ]; then + # --entrypoint bash \ + docker run -it \ + -p 8080:80 \ + --mount src="$(pwd)/stats",target=/server/stats,type=bind \ + --mount src="$(pwd)/data",target=/server/data,type=bind \ + --mount src="$(pwd)/publicDirs",target=/server/publicDirs,type=bind \ + qminer/mrfrys-node-server +elif [ "$1" == "bash" ]; then + docker exec -it "" /bin/bash +else + echo 'params: "build" or "run"' +fi