From f277bf64b8369e26a88f96cf2e60ba7aa05b82f7 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Fri, 10 Dec 2021 17:11:00 +1100 Subject: [PATCH 01/18] dev version --- src/db/build/Dockerfile | 15 ++++------ src/docker-compose.yml | 49 +++++++++++++++++++++++++++++++++ src/server/API/appsettings.json | 4 +-- src/server/Dockerfile | 4 +-- src/ui-client/Dockerfile | 25 ++++------------- 5 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 src/docker-compose.yml diff --git a/src/db/build/Dockerfile b/src/db/build/Dockerfile index 6ee4b372f..94727f63d 100644 --- a/src/db/build/Dockerfile +++ b/src/db/build/Dockerfile @@ -1,12 +1,11 @@ -FROM microsoft/mssql-server-linux:2017-latest +FROM mcr.microsoft.com/mssql/server:2017-latest ARG sapw RUN mkdir data # Include schema and initial data -COPY ./LeafDB.sql ./LeafDB.Data.sql ./LeafDB.Exec.sql ./SynPuf_OMOP.Restore.sql ./SynPuf_OMOP.Shrink.sql ./ -COPY ./SynPuf_OMOP.bak ./data/ +COPY ./LeafDB.sql ./LeafDB.Init.sql ./TestDB.sql ./ # Accept EULA ENV ACCEPT_EULA Y @@ -20,10 +19,6 @@ VOLUME /bak # Set up database RUN /opt/mssql/bin/sqlservr & sleep 10 \ && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.sql \ - && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.Data.sql \ - && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.Exec.sql \ - && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./SynPuf_OMOP.Restore.sql \ - && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./SynPuf_OMOP.Shrink.sql \ - && pkill sqlservr - -RUN rm /data/SynPuf_OMOP.bak \ No newline at end of file + && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.Init.sql -d LeafDB \ + && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./TestDB.sql \ + && pkill sqlservr \ No newline at end of file diff --git a/src/docker-compose.yml b/src/docker-compose.yml new file mode 100644 index 000000000..31de20fe2 --- /dev/null +++ b/src/docker-compose.yml @@ -0,0 +1,49 @@ +version: '3' +services: + + db: + build: + context: ./db/build + args: + - sapw=Th3PA55--8zz + image: leaf_db + container_name: leaf_db_demo + ports: + - 1433:1433 + networks: + - leaf + + server: + build: ./server + image: leaf_api + container_name: leaf_api_demo + ports: + - 5001:5001 + volumes: + - ./server/keys:/.keys + - ./server:/app + - server-log:/logs + networks: + - leaf + depends_on: + - db + + ui-client: + build: ./ui-client + container_name: leaf_ui + ports: + - 3000:3000 + volumes: + - ./ui-client:/app + networks: + - leaf + stdin_open: true + depends_on: + - db + - server + +networks: + leaf: + +volumes: + server-log: \ No newline at end of file diff --git a/src/server/API/appsettings.json b/src/server/API/appsettings.json index ffbbf6e21..400118b71 100644 --- a/src/server/API/appsettings.json +++ b/src/server/API/appsettings.json @@ -59,8 +59,8 @@ }, "Compiler": { "Alias": "@", - "FieldPersonId": "person_id", - "FieldEncounterId": "visit_occurrence_id" + "FieldPersonId": "PID", + "FieldEncounterId": "encounter_id" }, "Cohort": { "RowLimit": 200000, diff --git a/src/server/Dockerfile b/src/server/Dockerfile index de48d7832..ddec6c93f 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -15,9 +15,9 @@ RUN useradd leaf \ && chmod 775 /data/ COPY --chown=leaf:leafg . /data/server/ +COPY . /app +COPY ./keys /.keys RUN chmod 775 /data/server/ - -VOLUME [ "/app", "/.keys", "/logs" ] USER leaf diff --git a/src/ui-client/Dockerfile b/src/ui-client/Dockerfile index 13b4b51d9..e63a8adff 100644 --- a/src/ui-client/Dockerfile +++ b/src/ui-client/Dockerfile @@ -1,21 +1,6 @@ -FROM node:13.12.0-alpine as build-step - -# set working directory +FROM node:12 +RUN mkdir /app WORKDIR /app - -ENV PATH /app/node_modules/.bin:$PATH - -# install app dependencies -COPY . /app -RUN npm install - -CMD [ "npm", "start" ] - -#COPY build /app/build -#COPY nginx.conf /app - -#FROM nginx:1.17.1-alpine -#EXPOSE 8080 -#COPY --from=build-step /app/build /usr/share/nginx/html -#COPY --from=build-step /app/nginx.conf /etc/nginx/conf.d/default.conf -#CMD [ "nginx", "-g", "daemon off;" ] \ No newline at end of file +COPY package.json /app/ +RUN ["npm", "install"] +CMD ["npm","start"] \ No newline at end of file From b67dad6fd09c8c4b58f9cd1162745f2d4c243f1d Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Fri, 10 Dec 2021 18:25:59 +1100 Subject: [PATCH 02/18] add env variables --- src/docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 31de20fe2..982b5476c 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -23,6 +23,10 @@ services: - ./server/keys:/.keys - ./server:/app - server-log:/logs + environment: + - LEAF_APP_DB=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz + - LEAF_CLIN_DB=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz + - LEAF_JWT_KEY_PW=password networks: - leaf depends_on: From 242f292680ac5b5f39d46777158978cc41fdeca1 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Mon, 13 Dec 2021 17:22:33 +1100 Subject: [PATCH 03/18] fixes to make it work on Monterey --- containerize_leaf.sh | 7 ++++--- src/ui-client/package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/containerize_leaf.sh b/containerize_leaf.sh index bba30f42c..15fc99341 100755 --- a/containerize_leaf.sh +++ b/containerize_leaf.sh @@ -1,3 +1,4 @@ +set -e # Set configurable stuff SA_PASSWORD=Th3PA55--8zz # DB password @@ -15,7 +16,7 @@ if [ -z ${LEAF_JWT_KEY+x} ]; then echo "LEAF_JWT_KEY is unset!" exit; fi if [ -z ${LEAF_JWT_KEY_PW+x} ]; then echo "LEAF_JWT_KEY_PW is unset!" exit; fi # Extract cert/key path from ENVs -KEYS_PATH=`echo $LEAF_JWT_CERT | sed 's/\/cert.pem.*//'` +KEYS_PATH=$(dirname "$LEAF_JWT_CERT") if [ -z ${KEYS_PATH+x} ]; then echo "Couldn't find cert+key path! Are you sure LEAF_JWT_CERT is a valid path?" && exit; fi #-------------- @@ -25,7 +26,7 @@ docker run -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=$SA_PASSWORD" -p 1433:1433 \ -v leaf_sqlvolume:/var/opt/mssql \ --name leaf_db_demo mcr.microsoft.com/mssql/server:2017-latest -sleep 10s +sleep 10 docker_sqlcmd() { path="$1" @@ -36,7 +37,7 @@ docker_sqlcmd() { /opt/mssql-tools/bin/sqlcmd -S 'host.docker.internal' -U SA -P "$SA_PASSWORD" "$@" -i /sql/"$path" } -docker_getDbs(){ +docker_getDbs() { docker run --rm \ -v "$PWD"/src/db/build/:/sql \ mcr.microsoft.com/mssql-tools \ diff --git a/src/ui-client/package.json b/src/ui-client/package.json index c7078702d..1d693a0ef 100644 --- a/src/ui-client/package.json +++ b/src/ui-client/package.json @@ -67,7 +67,7 @@ "source-map-loader": "^0.2.4", "typescript": "3.4.3" }, - "proxy": "http://localhost:5001", + "proxy": "http://localhost:5001/", "browserslist": [ ">0.2%", "not dead", From a99f4aded5d764d0a8af7c5d4eebc00b9c71c4ec Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Mon, 13 Dec 2021 18:34:27 +1100 Subject: [PATCH 04/18] This is a working dev version --- src/{docker-compose.yml => docker-compose-dev.yml} | 10 ++++++---- src/server/Dockerfile | 2 -- src/ui-client/{Dockerfile => Dockerfile-dev} | 0 src/ui-client/package.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename src/{docker-compose.yml => docker-compose-dev.yml} (73%) rename src/ui-client/{Dockerfile => Dockerfile-dev} (100%) diff --git a/src/docker-compose.yml b/src/docker-compose-dev.yml similarity index 73% rename from src/docker-compose.yml rename to src/docker-compose-dev.yml index 982b5476c..86bf62979 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose-dev.yml @@ -24,16 +24,18 @@ services: - ./server:/app - server-log:/logs environment: - - LEAF_APP_DB=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz - - LEAF_CLIN_DB=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz - - LEAF_JWT_KEY_PW=password + LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" + LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" + LEAF_JWT_KEY_PW: "password" networks: - leaf depends_on: - db ui-client: - build: ./ui-client + build: + context: ./ui-client + dockerfile: Dockerfile-dev container_name: leaf_ui ports: - 3000:3000 diff --git a/src/server/Dockerfile b/src/server/Dockerfile index ddec6c93f..f7fdbed47 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -15,8 +15,6 @@ RUN useradd leaf \ && chmod 775 /data/ COPY --chown=leaf:leafg . /data/server/ -COPY . /app -COPY ./keys /.keys RUN chmod 775 /data/server/ USER leaf diff --git a/src/ui-client/Dockerfile b/src/ui-client/Dockerfile-dev similarity index 100% rename from src/ui-client/Dockerfile rename to src/ui-client/Dockerfile-dev diff --git a/src/ui-client/package.json b/src/ui-client/package.json index 1d693a0ef..c251607c7 100644 --- a/src/ui-client/package.json +++ b/src/ui-client/package.json @@ -67,7 +67,7 @@ "source-map-loader": "^0.2.4", "typescript": "3.4.3" }, - "proxy": "http://localhost:5001/", + "proxy": "http://server:5001/", "browserslist": [ ">0.2%", "not dead", From fc23db8bb5a38413b1544b4ffdccbbbfc70e1fbc Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Tue, 14 Dec 2021 17:51:27 +1100 Subject: [PATCH 05/18] try prod version with nginx --- src/docker-compose.yml | 50 +++++++++++++++++++++++++++++++++ src/server/Dockerfile | 3 ++ src/ui-client/Dockerfile | 15 ++++++++++ src/ui-client/nginx.conf | 42 +++++++++++++++++++-------- src/ui-client/package-lock.json | 39 +++++++++++++------------ src/ui-client/package.json | 8 +++--- 6 files changed, 121 insertions(+), 36 deletions(-) create mode 100644 src/docker-compose.yml create mode 100644 src/ui-client/Dockerfile diff --git a/src/docker-compose.yml b/src/docker-compose.yml new file mode 100644 index 000000000..b6a2e07dc --- /dev/null +++ b/src/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3' +services: + + db: + build: + context: ./db/build + args: + - sapw=Th3PA55--8zz + image: leaf_db + container_name: leaf_db_demo + ports: + - 1433:1433 + networks: + - leaf + + server: + build: ./server + image: leaf_api + container_name: leaf_api_demo + ports: + - 5001:5001 + volumes: + - server-log:/logs + environment: + LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" + LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" + LEAF_JWT_KEY_PW: "password" + networks: + - leaf + depends_on: + - db + + ui-client: + build: + context: ./ui-client + container_name: leaf_ui + ports: + - 80:80 + networks: + - leaf + stdin_open: true + depends_on: + - db + - server + +networks: + leaf: + +volumes: + server-log: \ No newline at end of file diff --git a/src/server/Dockerfile b/src/server/Dockerfile index f7fdbed47..8e417aae6 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -16,6 +16,9 @@ RUN useradd leaf \ COPY --chown=leaf:leafg . /data/server/ RUN chmod 775 /data/server/ + +COPY . /app +COPY ./keys /.keys USER leaf diff --git a/src/ui-client/Dockerfile b/src/ui-client/Dockerfile new file mode 100644 index 000000000..cbcdb96a8 --- /dev/null +++ b/src/ui-client/Dockerfile @@ -0,0 +1,15 @@ +FROM nginx:latest +RUN apt update +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash +RUN apt install -y nodejs +RUN npm install -g typescript@latest +RUN mkdir /code /code/public /code/src +COPY ./public /code/public +COPY ./src /code/src +COPY package.json package-lock.json /code/ +RUN cd /code && find . && npm install && npm run build + +RUN mkdir /app +RUN cp -R /code/build/* /app/ + +COPY ./nginx.conf /etc/nginx/nginx.conf diff --git a/src/ui-client/nginx.conf b/src/ui-client/nginx.conf index 384a60542..6557d1c17 100644 --- a/src/ui-client/nginx.conf +++ b/src/ui-client/nginx.conf @@ -1,14 +1,32 @@ -server { - listen 80; - index index.html index.htm; - location /api { - resolver 127.0.0.1; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://server:5001/api/$request_uri; - } - location / { - try_files $uri $uri/ =404; +events { +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name localhost; + root /app; + + location /api { + resolver 127.0.0.1; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass http://server:5001/api/$request_uri; + } + + location / { + index index.html; + try_files $uri $uri/ /index.html; + } } } \ No newline at end of file diff --git a/src/ui-client/package-lock.json b/src/ui-client/package-lock.json index 5d3cdf25f..ff0de01b6 100644 --- a/src/ui-client/package-lock.json +++ b/src/ui-client/package-lock.json @@ -1,6 +1,6 @@ { "name": "ui-client", - "version": "3.9.1", + "version": "3.10.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2677,8 +2677,7 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "" }, "ansi-styles": { "version": "3.2.1", @@ -2934,11 +2933,11 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", + "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "axobject-query": { @@ -11179,9 +11178,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" } } }, @@ -11886,9 +11885,9 @@ } }, "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "requires": { "boolbase": "^1.0.0" } @@ -13467,9 +13466,9 @@ } }, "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, "to-arraybuffer": { "version": "1.0.1", @@ -13806,9 +13805,9 @@ } }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -14821,4 +14820,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/ui-client/package.json b/src/ui-client/package.json index c251607c7..29e13fb5f 100644 --- a/src/ui-client/package.json +++ b/src/ui-client/package.json @@ -1,6 +1,6 @@ { "name": "ui-client", - "version": "3.9.1", + "version": "3.10.0", "private": true, "dependencies": { "@types/d3-format": "^1.3.1", @@ -14,7 +14,7 @@ "@types/reactstrap": "^8.0.4", "@types/recharts": "^1.8.5", "@types/shortid": "0.0.29", - "axios": "^0.21.1", + "axios": "^0.21.2", "bootstrap": "^4.3.1", "brace": "^0.11.1", "hoist-non-react-statics": "^3.3.0", @@ -67,11 +67,11 @@ "source-map-loader": "^0.2.4", "typescript": "3.4.3" }, - "proxy": "http://server:5001/", + "proxy": "http://server:5001", "browserslist": [ ">0.2%", "not dead", "not ie < 11", "not op_mini all" ] -} +} \ No newline at end of file From f737d8b6aa8617bd0c829d0c80560b6d62e9e581 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Tue, 14 Dec 2021 17:55:31 +1100 Subject: [PATCH 06/18] add slash back --- src/ui-client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui-client/package.json b/src/ui-client/package.json index 29e13fb5f..3947e41c5 100644 --- a/src/ui-client/package.json +++ b/src/ui-client/package.json @@ -67,7 +67,7 @@ "source-map-loader": "^0.2.4", "typescript": "3.4.3" }, - "proxy": "http://server:5001", + "proxy": "http://server:5001/", "browserslist": [ ">0.2%", "not dead", From f6d1d0371c93067dd29c59cf501f8b4b9ad7b1bf Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Tue, 14 Dec 2021 18:12:46 +1100 Subject: [PATCH 07/18] the frontend is working now with nginx --- src/ui-client/Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ui-client/Dockerfile b/src/ui-client/Dockerfile index cbcdb96a8..a68146245 100644 --- a/src/ui-client/Dockerfile +++ b/src/ui-client/Dockerfile @@ -3,10 +3,8 @@ RUN apt update RUN curl -sL https://deb.nodesource.com/setup_14.x | bash RUN apt install -y nodejs RUN npm install -g typescript@latest -RUN mkdir /code /code/public /code/src -COPY ./public /code/public -COPY ./src /code/src -COPY package.json package-lock.json /code/ +RUN mkdir /code +COPY . /code RUN cd /code && find . && npm install && npm run build RUN mkdir /app From 4a7115e98627f2350f08e69e6d25e04de4db74bf Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Thu, 16 Dec 2021 12:10:36 +1100 Subject: [PATCH 08/18] change resolver and proxy --- src/docker-compose.yml | 2 ++ src/server/Dockerfile | 6 +++--- src/ui-client/nginx.conf | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/docker-compose.yml b/src/docker-compose.yml index b6a2e07dc..ea813192b 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -20,6 +20,8 @@ services: ports: - 5001:5001 volumes: + - ./server/keys:/.keys + - ./server:/app - server-log:/logs environment: LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" diff --git a/src/server/Dockerfile b/src/server/Dockerfile index 8e417aae6..785275f65 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -14,11 +14,11 @@ RUN useradd leaf \ && chown leaf:leafg /data/ \ && chmod 775 /data/ -COPY --chown=leaf:leafg . /data/server/ -RUN chmod 775 /data/server/ - COPY . /app COPY ./keys /.keys + +COPY --chown=leaf:leafg . /data/server/ +RUN chmod 775 /data/server/ USER leaf diff --git a/src/ui-client/nginx.conf b/src/ui-client/nginx.conf index 6557d1c17..aab73895f 100644 --- a/src/ui-client/nginx.conf +++ b/src/ui-client/nginx.conf @@ -17,11 +17,11 @@ http { root /app; location /api { - resolver 127.0.0.1; + resolver 127.0.0.11 ipv6=off; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://server:5001/api/$request_uri; + proxy_pass http://server:5001$request_uri; } location / { From e465c3c2dc57d0404137982799a71cb829df05e8 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Thu, 16 Dec 2021 13:50:02 +1100 Subject: [PATCH 09/18] fix the encoding issue of .net --- src/server/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/Dockerfile b/src/server/Dockerfile index 785275f65..817ae1726 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -30,6 +30,7 @@ ENV ASPNETCORE_URLS=http://0.0.0.0:5001 ENV DOTNET_RUNNING_IN_CONTAINER true ENV DOTNET_USE_POLLING_FILE_WATCHER true ENV NUGET_XMLDOC_MODE skip - +ENV LANG: en_US.UTF-8 + WORKDIR /app/API CMD [ "dotnet", "run" ] \ No newline at end of file From b2d75eca3488ec97290558805b81f48d0b7897f3 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Thu, 16 Dec 2021 17:32:12 +1100 Subject: [PATCH 10/18] remove server docker ignore --- src/server/.dockerignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/server/.dockerignore b/src/server/.dockerignore index d1a21ddd4..e69de29bb 100644 --- a/src/server/.dockerignore +++ b/src/server/.dockerignore @@ -1,4 +0,0 @@ -**/bin/ -**/obj/ -out/ -.vs \ No newline at end of file From 71a658fad71edeb1e076a7687ddbfb3d3982fcfa Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Fri, 17 Dec 2021 12:29:45 +1100 Subject: [PATCH 11/18] remove the user thing --- .dockerignore | 1 - src/docker-compose.yml | 2 -- src/server/Dockerfile | 15 ++------------- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/.dockerignore b/.dockerignore index fb0e71efe..2a0ed8bc5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ */bin/ -*/obj/ */out/ */.vs .vscode diff --git a/src/docker-compose.yml b/src/docker-compose.yml index ea813192b..b6a2e07dc 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -20,8 +20,6 @@ services: ports: - 5001:5001 volumes: - - ./server/keys:/.keys - - ./server:/app - server-log:/logs environment: LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" diff --git a/src/server/Dockerfile b/src/server/Dockerfile index 817ae1726..a805dd5f2 100644 --- a/src/server/Dockerfile +++ b/src/server/Dockerfile @@ -5,22 +5,11 @@ RUN rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-p && yum -y install util-linux \ && yum -y install vim-minimal \ && yum -y update \ - && yum clean all - -RUN useradd leaf \ - && groupadd leafg \ - && usermod -a -G leafg leaf \ - && mkdir /data/ \ - && chown leaf:leafg /data/ \ - && chmod 775 /data/ + && yum clean all COPY . /app COPY ./keys /.keys - -COPY --chown=leaf:leafg . /data/server/ -RUN chmod 775 /data/server/ - -USER leaf +COPY . /data/server/ # Configure Environment Variables ENV LEAF_JWT_CERT /.keys/cert.pem From 02b0d987c8796b312c6515dd9dd02febbffb0786 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Mon, 20 Dec 2021 13:43:46 +1100 Subject: [PATCH 12/18] remove testdb for demo --- src/db/build/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/db/build/Dockerfile b/src/db/build/Dockerfile index 94727f63d..6640b62e1 100644 --- a/src/db/build/Dockerfile +++ b/src/db/build/Dockerfile @@ -5,7 +5,7 @@ ARG sapw RUN mkdir data # Include schema and initial data -COPY ./LeafDB.sql ./LeafDB.Init.sql ./TestDB.sql ./ +COPY ./LeafDB.sql ./LeafDB.Init.sql ./ # Accept EULA ENV ACCEPT_EULA Y @@ -20,5 +20,4 @@ VOLUME /bak RUN /opt/mssql/bin/sqlservr & sleep 10 \ && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.sql \ && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.Init.sql -d LeafDB \ - && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./TestDB.sql \ && pkill sqlservr \ No newline at end of file From e9fbd911c643eb6bf8ce7187e5fd2dd0c40a0a1a Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Mon, 20 Dec 2021 14:27:06 +1100 Subject: [PATCH 13/18] still add testDB but no test data from leaf --- src/db/build/Dockerfile | 3 +- src/db/build/TestDB.sql | 245 +--------------------------------------- 2 files changed, 3 insertions(+), 245 deletions(-) diff --git a/src/db/build/Dockerfile b/src/db/build/Dockerfile index 6640b62e1..94727f63d 100644 --- a/src/db/build/Dockerfile +++ b/src/db/build/Dockerfile @@ -5,7 +5,7 @@ ARG sapw RUN mkdir data # Include schema and initial data -COPY ./LeafDB.sql ./LeafDB.Init.sql ./ +COPY ./LeafDB.sql ./LeafDB.Init.sql ./TestDB.sql ./ # Accept EULA ENV ACCEPT_EULA Y @@ -20,4 +20,5 @@ VOLUME /bak RUN /opt/mssql/bin/sqlservr & sleep 10 \ && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.sql \ && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./LeafDB.Init.sql -d LeafDB \ + && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ${MSSQL_SA_PASSWORD} -i ./TestDB.sql \ && pkill sqlservr \ No newline at end of file diff --git a/src/db/build/TestDB.sql b/src/db/build/TestDB.sql index 09784c85e..0595a46cb 100644 --- a/src/db/build/TestDB.sql +++ b/src/db/build/TestDB.sql @@ -5,247 +5,4 @@ GO * TestDB */ CREATE DATABASE [TestDB] -GO - -ALTER DATABASE [TestDB] SET RECOVERY SIMPLE -GO - -USE [TestDB] -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[person]( - [person_id] [int] NULL, - [age] [int] NULL, - [gender] [nvarchar](20) NULL -) ON [PRIMARY] -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [dbo].[visit_occurrence]( - [person_id] [int] NULL, - [visit_occurrence_id] [int] NULL, - [visit_date] [datetime] NULL, - [visit_type] [nvarchar](10) NULL -) ON [PRIMARY] -GO - -INSERT [dbo].[person] ([person_id], [age], [gender]) VALUES (1, 28, N'F') -GO -INSERT [dbo].[person] ([person_id], [age], [gender]) VALUES (2, 74, N'M') -GO -INSERT [dbo].[person] ([person_id], [age], [gender]) VALUES (3, 55, N'M') -GO -INSERT [dbo].[person] ([person_id], [age], [gender]) VALUES (4, 43, N'F') -GO -INSERT [dbo].[person] ([person_id], [age], [gender]) VALUES (5, 99, N'F') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (1, 100, CAST(N'2020-08-14T00:00:00.000' AS DateTime), N'IP') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (1, 101, CAST(N'2020-09-22T00:00:00.000' AS DateTime), N'OP') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (2, 102, CAST(N'2018-06-01T00:00:00.000' AS DateTime), N'IP') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (2, 103, CAST(N'2018-02-28T00:00:00.000' AS DateTime), N'ED') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (3, 104, CAST(N'2015-01-01T00:00:00.000' AS DateTime), N'OP') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (4, 105, CAST(N'2022-09-19T00:00:00.000' AS DateTime), N'OP') -GO -INSERT [dbo].[visit_occurrence] ([person_id], [visit_occurrence_id], [visit_date], [visit_type]) VALUES (4, 106, CAST(N'2028-01-01T00:00:00.000' AS DateTime), N'IP') -GO - -USE [LeafDB] -GO - - -DECLARE @user NVARCHAR(20) = 'TestDB.sql' -DECLARE @yes BIT = 1 -DECLARE @no BIT = 0 - -INSERT INTO app.ConceptSqlSet (SqlSetFrom, IsEncounterBased, IsEventBased, SqlFieldDate, Created, CreatedBy, Updated, UpdatedBy) -SELECT * -FROM (VALUES ('dbo.person', @no, @no, NULL, GETDATE(), @user, GETDATE(), @user), - ('dbo.visit_occurrence', @yes, @no, '@.visit_date', GETDATE(), @user, GETDATE(), @user) - ) AS X(col1,col2,col3,col4,col5,col6,col7,col8) - -DECLARE @sqlset_person INT = (SELECT TOP 1 Id FROM LeafDB.app.ConceptSqlSet WHERE SqlSetFrom = 'dbo.person') -DECLARE @sqlset_visit_occurrence INT = (SELECT TOP 1 Id FROM LeafDB.app.ConceptSqlSet WHERE SqlSetFrom = 'dbo.visit_occurrence') - -INSERT INTO app.Concept (ExternalId, ExternalParentId, [IsNumeric], IsParent, IsRoot, SqlSetId, SqlSetWhere, - SqlFieldNumeric, UiDisplayName, UiDisplayText, UiDisplayUnits, UiNumericDefaultText, UiDisplayPatientCount) -SELECT ExternalId = 'A' - , ExternalParentId = NULL - , [IsNumeric] = @no - , IsParent = @yes - , IsRoot = @yes - , SqlSetId = @sqlset_person - , SqlSetWhere = NULL - , SqlFieldNumeric = NULL - , UiDisplayName = 'Demographics' - , UiDisplayText = 'Have demographics' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.person) -UNION ALL -SELECT ExternalId = 'A1' - , ExternalParentId = 'A' - , [IsNumeric] = @no - , IsParent = @yes - , IsRoot = @no - , SqlSetId = @sqlset_person - , SqlSetWhere = '@.gender IS NOT NULL' - , SqlFieldNumeric = NULL - , UiDisplayName = 'Gender' - , UiDisplayText = 'Identify with a gender' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.person) -UNION ALL -SELECT ExternalId = 'A11' - , ExternalParentId = 'A1' - , [IsNumeric] = @no - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_person - , SqlSetWhere = '@.gender = ''F''' - , SqlFieldNumeric = NULL - , UiDisplayName = 'Female' - , UiDisplayText = 'Identify as Female' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.person WHERE gender = 'F') -UNION ALL -SELECT ExternalId = 'A12' - , ExternalParentId = 'A1' - , [IsNumeric] = @no - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_person - , SqlSetWhere = '@.gender = ''M''' - , SqlFieldNumeric = NULL - , UiDisplayName = 'Male' - , UiDisplayText = 'Identify as Male' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.person WHERE gender = 'M') -UNION ALL -SELECT ExternalId = 'A2' - , ExternalParentId = 'A' - , [IsNumeric] = @yes - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_person - , SqlSetWhere = '@.age IS NOT NULL' - , SqlFieldNumeric = '@.age' - , UiDisplayName = 'Age' - , UiDisplayText = 'Are currently' - , UiDisplayUnits = 'years of age' - , UiNumericDefaultText = 'any age' - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.person WHERE age IS NOT NULL) -UNION ALL -SELECT ExternalId = 'B' - , ExternalParentId = NULL - , [IsNumeric] = @no - , IsParent = @yes - , IsRoot = @yes - , SqlSetId = @sqlset_visit_occurrence - , SqlSetWhere = NULL - , SqlFieldNumeric = NULL - , UiDisplayName = 'Encounters' - , UiDisplayText = 'Had an encounter' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.visit_occurrence) -UNION ALL -SELECT ExternalId = 'B1' - , ExternalParentId = 'B' - , [IsNumeric] = @no - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_visit_occurrence - , SqlSetWhere = NULL - , SqlFieldNumeric = NULL - , UiDisplayName = 'Inpatient' - , UiDisplayText = 'Had an Inpatient encounter' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.visit_occurrence WHERE visit_type = 'IP') -UNION ALL -SELECT ExternalId = 'B2' - , ExternalParentId = 'B' - , [IsNumeric] = @no - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_visit_occurrence - , SqlSetWhere = NULL - , SqlFieldNumeric = NULL - , UiDisplayName = 'Outpatient' - , UiDisplayText = 'Had an Outpatient encounter' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.visit_occurrence WHERE visit_type = 'OP') -UNION ALL -SELECT ExternalId = 'B3' - , ExternalParentId = 'B' - , [IsNumeric] = @no - , IsParent = @no - , IsRoot = @no - , SqlSetId = @sqlset_visit_occurrence - , SqlSetWhere = NULL - , SqlFieldNumeric = NULL - , UiDisplayName = 'Emergency' - , UiDisplayText = 'Had an Emergency Department encounter' - , UiDisplayUnits = NULL - , UiNumericDefaultText = NULL - , UiDisplayPatientCount = (SELECT COUNT(*) FROM TestDB.dbo.visit_occurrence WHERE visit_type = 'ED') - - - -/** -* Set ParentId based on ExternalIds -*/ -UPDATE LeafDB.app.Concept -SET ParentId = P.Id -FROM LeafDB.app.Concept AS C - INNER JOIN (SELECT P.Id, P.ParentId, P.ExternalId - FROM LeafDB.app.Concept AS P) AS P - ON C.ExternalParentID = P.ExternalID -WHERE C.ParentId IS NULL - -/** -* Set RootIds -*/ -; WITH roots AS -( - SELECT RootId = C.Id - , RootUiDisplayName = C.UiDisplayName - , C.IsRoot - , C.Id - , C.ParentId - , C.UiDisplayName - FROM LeafDB.app.Concept AS C - WHERE C.IsRoot = 1 - UNION ALL - SELECT roots.RootId - , roots.RootUiDisplayName - , C2.IsRoot - , C2.Id - , C2.ParentId - , C2.UiDisplayName - FROM roots - INNER JOIN LeafDB.app.Concept AS C2 - ON C2.ParentId = roots.Id -) -UPDATE LeafDB.app.Concept -SET RootId = roots.RootId -FROM LeafDB.app.Concept AS C - INNER JOIN roots - ON C.Id = roots.Id -WHERE C.RootId IS NULL +GO \ No newline at end of file From 247cf0064ead8abc7794aaa56ecc65fa09a5184c Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Tue, 21 Dec 2021 12:41:34 +1100 Subject: [PATCH 14/18] Add flag to control admin --- containerize_leaf.sh | 1 + src/docker-compose-dev.yml | 1 + src/docker-compose.yml | 1 + .../API/Authorization/UnsecureEntitlementProvider.cs | 9 ++++++++- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/containerize_leaf.sh b/containerize_leaf.sh index 15fc99341..ef7fb1ea6 100755 --- a/containerize_leaf.sh +++ b/containerize_leaf.sh @@ -68,6 +68,7 @@ docker run \ -e "LEAF_APP_DB=Server=$DB_SERVER,1433;Database=LeafDB;uid=sa;Password=$SA_PASSWORD" \ -e "LEAF_CLIN_DB=Server=$DB_SERVER,1433;Database=TestDB;uid=sa;Password=$SA_PASSWORD" \ -e "LEAF_JWT_KEY_PW=$LEAF_JWT_KEY_PW" \ + -e "UnsecuredIsAdmin"="true" \ -p 5001:5001 \ -v ${PWD}/src/server:/app \ -v ${KEYS_PATH}:/.keys \ diff --git a/src/docker-compose-dev.yml b/src/docker-compose-dev.yml index 86bf62979..c8fc72de8 100644 --- a/src/docker-compose-dev.yml +++ b/src/docker-compose-dev.yml @@ -27,6 +27,7 @@ services: LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" LEAF_JWT_KEY_PW: "password" + UnsecuredIsAdmin: "true" networks: - leaf depends_on: diff --git a/src/docker-compose.yml b/src/docker-compose.yml index b6a2e07dc..23de536fb 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -25,6 +25,7 @@ services: LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" LEAF_JWT_KEY_PW: "password" + UnsecuredIsAdmin: "false" networks: - leaf depends_on: diff --git a/src/server/API/Authorization/UnsecureEntitlementProvider.cs b/src/server/API/Authorization/UnsecureEntitlementProvider.cs index cabb4d760..7f3150e31 100644 --- a/src/server/API/Authorization/UnsecureEntitlementProvider.cs +++ b/src/server/API/Authorization/UnsecureEntitlementProvider.cs @@ -19,9 +19,16 @@ public class UnsecureEntitlementProvider : IFederatedEntitlementProvider { public Entitlement GetEntitlement(HttpContext _, IScopedIdentity __) { + String UnsecuredIsAdmin = Environment.GetEnvironmentVariable("UnsecuredIsAdmin"); + var MyMask = RoleMask.User; + if (UnsecuredIsAdmin == "true") + { + MyMask = RoleMask.User | RoleMask.Admin | RoleMask.Super | RoleMask.Identified | RoleMask.Federated; + }; + return new Entitlement { - Mask = RoleMask.User | RoleMask.Admin | RoleMask.Super | RoleMask.Identified | RoleMask.Federated, + Mask = MyMask, Groups = new string[] { "urn:leaf:localhost:groups:random_group" } }; } From 9338038d99b081cde8b0e65a6b409eaf0fa110fc Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Wed, 22 Dec 2021 11:44:01 +1100 Subject: [PATCH 15/18] clean docker-compose --- src/docker-compose.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 23de536fb..fc1ea7f40 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./db/build args: - - sapw=Th3PA55--8zz + - sapw=${SA_PASSWORD} image: leaf_db container_name: leaf_db_demo ports: @@ -17,15 +17,13 @@ services: build: ./server image: leaf_api container_name: leaf_api_demo - ports: - - 5001:5001 volumes: - server-log:/logs environment: - LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" - LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" - LEAF_JWT_KEY_PW: "password" - UnsecuredIsAdmin: "false" + - LEAF_APP_DB=${LEAF_APP_DB} + - LEAF_CLIN_DB=${LEAF_CLIN_DB} + - LEAF_JWT_KEY_PW=${LEAF_JWT_KEY_PW} + - UnsecuredIsAdmin=${UnsecuredIsAdminProd} networks: - leaf depends_on: From cc96f2b245876f69341f16876b6f56941d141a9b Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Wed, 22 Dec 2021 11:53:24 +1100 Subject: [PATCH 16/18] clean docker-compose-dev --- src/docker-compose-dev.yml | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/docker-compose-dev.yml b/src/docker-compose-dev.yml index c8fc72de8..379c76b7a 100644 --- a/src/docker-compose-dev.yml +++ b/src/docker-compose-dev.yml @@ -2,16 +2,9 @@ version: '3' services: db: - build: - context: ./db/build - args: - - sapw=Th3PA55--8zz - image: leaf_db - container_name: leaf_db_demo - ports: - - 1433:1433 - networks: - - leaf + extends: + file: docker-compose.yml + service: db server: build: ./server @@ -24,10 +17,10 @@ services: - ./server:/app - server-log:/logs environment: - LEAF_APP_DB: "Server=db,1433;Database=LeafDB;uid=sa;Password=Th3PA55--8zz" - LEAF_CLIN_DB: "Server=db,1433;Database=TestDB;uid=sa;Password=Th3PA55--8zz" - LEAF_JWT_KEY_PW: "password" - UnsecuredIsAdmin: "true" + - LEAF_APP_DB=${LEAF_APP_DB} + - LEAF_CLIN_DB=${LEAF_CLIN_DB} + - LEAF_JWT_KEY_PW=${LEAF_JWT_KEY_PW} + - UnsecuredIsAdmin=${UnsecuredIsAdminDev} networks: - leaf depends_on: From 2501eeafcd218c95d468dfcb10199f7783c37485 Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Mon, 10 Jan 2022 13:14:54 +1100 Subject: [PATCH 17/18] add always restart for prod --- src/docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/docker-compose.yml b/src/docker-compose.yml index fc1ea7f40..e614a4441 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -10,6 +10,7 @@ services: container_name: leaf_db_demo ports: - 1433:1433 + restart: always networks: - leaf @@ -24,6 +25,7 @@ services: - LEAF_CLIN_DB=${LEAF_CLIN_DB} - LEAF_JWT_KEY_PW=${LEAF_JWT_KEY_PW} - UnsecuredIsAdmin=${UnsecuredIsAdminProd} + restart: always networks: - leaf depends_on: @@ -35,6 +37,7 @@ services: container_name: leaf_ui ports: - 80:80 + restart: always networks: - leaf stdin_open: true From 3707fde16a51b46c447a328d165e49731c05380e Mon Sep 17 00:00:00 2001 From: Elevn Li Date: Tue, 26 Jul 2022 10:42:55 +1000 Subject: [PATCH 18/18] remove docker-compose for dev --- src/docker-compose-dev.yml | 49 -------------------------------------- src/docker-compose.yml | 3 ++- 2 files changed, 2 insertions(+), 50 deletions(-) delete mode 100644 src/docker-compose-dev.yml diff --git a/src/docker-compose-dev.yml b/src/docker-compose-dev.yml deleted file mode 100644 index 379c76b7a..000000000 --- a/src/docker-compose-dev.yml +++ /dev/null @@ -1,49 +0,0 @@ -version: '3' -services: - - db: - extends: - file: docker-compose.yml - service: db - - server: - build: ./server - image: leaf_api - container_name: leaf_api_demo - ports: - - 5001:5001 - volumes: - - ./server/keys:/.keys - - ./server:/app - - server-log:/logs - environment: - - LEAF_APP_DB=${LEAF_APP_DB} - - LEAF_CLIN_DB=${LEAF_CLIN_DB} - - LEAF_JWT_KEY_PW=${LEAF_JWT_KEY_PW} - - UnsecuredIsAdmin=${UnsecuredIsAdminDev} - networks: - - leaf - depends_on: - - db - - ui-client: - build: - context: ./ui-client - dockerfile: Dockerfile-dev - container_name: leaf_ui - ports: - - 3000:3000 - volumes: - - ./ui-client:/app - networks: - - leaf - stdin_open: true - depends_on: - - db - - server - -networks: - leaf: - -volumes: - server-log: \ No newline at end of file diff --git a/src/docker-compose.yml b/src/docker-compose.yml index e614a4441..ca4b9e0aa 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -48,5 +48,6 @@ services: networks: leaf: + volumes: - server-log: \ No newline at end of file + server-log: