From 2049e224da611deb9de93adb2260efb0c849e563 Mon Sep 17 00:00:00 2001 From: Ilya Mukhortov <> Date: Tue, 11 Aug 2020 23:17:35 +1000 Subject: [PATCH] pass --- docker-install.sh | 21 ++++++++++ install.sh | 37 ++++++++++++++++++ medicine/default.docker-compose.override.yml | 12 ++++++ medicine/run.sh | 41 ++++++++++++++++++++ run | 34 ---------------- 5 files changed, 111 insertions(+), 34 deletions(-) create mode 100644 docker-install.sh create mode 100644 install.sh create mode 100644 medicine/default.docker-compose.override.yml create mode 100644 medicine/run.sh delete mode 100644 run diff --git a/docker-install.sh b/docker-install.sh new file mode 100644 index 0000000..7cf4efe --- /dev/null +++ b/docker-install.sh @@ -0,0 +1,21 @@ + +sudo apt-get update +sudo apt-get install \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg-agent \ + software-properties-common + +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo apt-key fingerprint 0EBFCD88 + +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + +sudo apt-get update +sudo apt-get install docker-ce docker-ce-cli containerd.io + +docker ps + +apt-get install python-pip3 +pip3 install docker-compose diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..232ad80 --- /dev/null +++ b/install.sh @@ -0,0 +1,37 @@ + +set -e + +cd /root +git clone https://bitbucket.org/med-logic/medicine-config.git + +echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin + +docker network create medicine-network + +docker pull docker.med-logic.ru/medicine-nginx:latest +docker pull docker.med-logic.ru/medicine-app:latest +docker pull docker.med-logic.ru/tfoms-patient:latest +docker pull docker.med-logic.ru/medicine-timetable + +cd /root/medicine-config/thirdparty-apps +docker-compose pull +docker-compose build + +cd /root/medicine-config/medicine-stack +docker-compose up -d +sleep 10 +docker-compose exec postgres psql -c 'CREATE DATABASE medicine' --username=postgres +docker-compose exec postgres psql -c 'CREATE DATABASE tfoms_patient' --username=postgres + +docker-compose exec postgres psql -d medicine -c "CREATE ROLE readonly; GRANT USAGE ON SCHEMA public TO readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly; CREATE USER readonly_user WITH PASSWORD 'readonly_password'; GRANT readonly TO readonly_user; ALTER ROLE readonly WITH LOGIN;" --username=postgres + +cd /root/medicine-config/thirdparty-apps +docker-compose up -d + +cd /root/medicine-config/tfoms-patient +docker-compose up -d + +cd /root/medicine-config/medicine + + +docker exec -i medicine-stack-postgres pg_dump --no-owner -U postgres -F c medicine > /root/medicine-backups/latest_database.tar.gz --exclude-table-data=riisz_logging --exclude-table-data=reversion_* \ No newline at end of file diff --git a/medicine/default.docker-compose.override.yml b/medicine/default.docker-compose.override.yml new file mode 100644 index 0000000..aecac09 --- /dev/null +++ b/medicine/default.docker-compose.override.yml @@ -0,0 +1,12 @@ + +version: '3' + +services: + + nginx: + external_links: + - "tfoms-patient:patient-search-host" + + app: + external_links: + - "tfoms-patient:patient-search-host" diff --git a/medicine/run.sh b/medicine/run.sh new file mode 100644 index 0000000..8709485 --- /dev/null +++ b/medicine/run.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +COMMAND="$1" +ARGUMENT="$2" + +pull_images() { + echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin + docker pull docker.med-logic.ru/medicine-app:latest + docker pull docker.med-logic.ru/medicine-nginx:latest +} + +backup_database() { + year_month=$(date +%Y%m) + backup_date = $(date %Y%m%d_%H%M) + mkdir -p foo "/root/medicine-backups/${year_month}" + docker exec -i medicine-stack-postgres \ + pg_dump --no-owner -U postgres -F c \ + medicine > "/root/medicine-backups/${year_month}/${backup_date}_database.tar.gz" \ + --exclude-table-data=riisz_logging --exclude-table-data=reversion_* +} + +update() { + pull_images + backup_database + + docker-compose stop + docker-compose up -d + docker-compose run --rm app python manage.py migrate directory --noinput + docker-compose run --rm app python manage.py directory_importdata all + docker-compose run --rm app python manage.py migrate --noinput + docker-compose run --rm app python manage.py collectstatic --noinput + docker-compose run --rm app python manage.py post_update +} + +fast_update() { + pull_images + docker-compose stop + docker-compose up -d +} + +${COMMAND} \ No newline at end of file diff --git a/run b/run deleted file mode 100644 index 7b82e56..0000000 --- a/run +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -COMMAND="$1" -ARGUMENT="$2" - -bash() { - docker-compose exec ${ARGUMENT} bash -} - -git_ignore_filemode() { - git config core.fileMode false -} - -update_thirdparty_apps() { - docker-compose -f docker-compose.thirdparty-apps.yml stop - docker-compose -f docker-compose.thirdparty-apps.yml build - docker-compose -f docker-compose.thirdparty-apps.yml up -d -} - -update_tfoms_patient() { - docker pull docker.med-logic.ru/tfoms-patient:latest - docker-compose -f docker-compose.tfoms-patient.yml stop - docker-compose -f docker-compose.tfoms-patient.yml up -d -} - -update_medicine() { - docker pull docker.med-logic.ru/medicine-app:latest - docker pull docker.med-logic.ru/medicine-nginx:latest - docker-compose -f docker-compose.medicine.yml stop - docker-compose -f docker-compose.medicine.yml up -d - -} - -${COMMAND}