From 81f53a4ec7f883aa97f2093751dac93a87c169b4 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Tue, 5 Mar 2024 22:35:49 +0200 Subject: [PATCH] deployment scripts changes. staging is now demo, production has two instances - one for staging --- _deploy/deoloy.azure.demo.yml | 39 +++++++++++++ _deploy/deoloy.azure.prod.stage.yml | 57 ------------------- ...e.prod.yml => deoloy.azure.production.yml} | 6 +- ...tion.yml => homelab.deploy.production.yml} | 20 ++++++- _doc/notes.mb | 7 +++ 5 files changed, 67 insertions(+), 62 deletions(-) create mode 100644 _deploy/deoloy.azure.demo.yml delete mode 100644 _deploy/deoloy.azure.prod.stage.yml rename _deploy/{deoloy.azure.prod.yml => deoloy.azure.production.yml} (96%) rename _deploy/{deploy.homelab.production.yml => homelab.deploy.production.yml} (57%) diff --git a/_deploy/deoloy.azure.demo.yml b/_deploy/deoloy.azure.demo.yml new file mode 100644 index 0000000..4aab094 --- /dev/null +++ b/_deploy/deoloy.azure.demo.yml @@ -0,0 +1,39 @@ +version: "3" +services: + nextjs-app: # https://sofia.mwhitnessing.com/ + hostname: jwpw-app-staging # jwpw-nextjs-app-1 + image: docker.d-popov.com/jwpw:latest + volumes: + - /mnt/docker_volumes/pw-demo/app/public/content/uploads/:/app/public/content/uploads + environment: + - NODE_ENV=prod_staging + - TZ=Europe/Sofia + - DATABASE_URL=mysql://jwpwsofia_demo:dwxhns9p9vp248@jwpwsofia:3306/jwpwsofia_demo + - UPDATE_CODE_FROM_GIT=true # Set to true to pull latest code from Git + - GIT_BRANCH=main + - GIT_USERNAME=deploy + - GIT_PASSWORD=L3Kr2R438u4F7 + command: sh -c " cd /app && npm install && npx next build && npm run nodeenv; tail -f /dev/null" + tty: true + stdin_open: true + restart: always + networks: + - infrastructure_default + mariadb: + deploy: + replicas: 0 + hostname: mariadb-demo + image: mariadb:latest #mariadb:10.4 + volumes: + - /mnt/docker_volumes/pw-demo/data/mysql:/var/lib/mysql + environment: + MARIADB_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93 + MYSQL_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93 + MYSQL_DATABASE: jwpwsofia_demo + MYSQL_USER: jwpwsofia_demo + MYSQL_PASSWORD: dwxhns9p9vp248 + networks: + - infrastructure_default +networks: + infrastructure_default: + external: true diff --git a/_deploy/deoloy.azure.prod.stage.yml b/_deploy/deoloy.azure.prod.stage.yml deleted file mode 100644 index 9590d67..0000000 --- a/_deploy/deoloy.azure.prod.stage.yml +++ /dev/null @@ -1,57 +0,0 @@ -version: "3" -services: - nextjs-app: # https://sofia.mwhitnessing.com/ - hostname: jwpw-app-staging # jwpw-nextjs-app-1 - image: docker.d-popov.com/jwpw:latest - volumes: - - /mnt/docker_volumes/pw-staging/app/public/content/uploads/:/app/public/content/uploads - environment: - - NODE_ENV=prod_staging - - TZ=Europe/Sofia - - DATABASE_URL=mysql://jwpwsofia:dwxhns9p9vp248V39xJyRthUsZ2gR9@mariadb-staging:3306/jwpwsofia - - UPDATE_CODE_FROM_GIT=true # Set to true to pull latest code from Git - - GIT_BRANCH=main - - GIT_USERNAME=deploy - - GIT_PASSWORD=L3Kr2R438u4F7 - command: sh -c " cd /app && npm install && npm run nodeenv; tail -f /dev/null" - tty: true - stdin_open: true - restart: always - # ports: - # - "3001:3000" - networks: - - infrastructure_default - mariadb: - hostname: mariadb-staging - image: mariadb:latest #mariadb:10.4 - volumes: - - /mnt/docker_volumes/pw-staging/data/mysql:/var/lib/mysql - environment: - MARIADB_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262 - MYSQL_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262 - MYSQL_DATABASE: jwpwsofia - MYSQL_USER: jwpwsofia - MYSQL_PASSWORD: dwxhns9p9vp248V39xJyRthUsZ2gR9 - #command: ["mysqld", "--max-connections=1000", "--sql-mode=ALLOW_INVALID_DATES,ANSI_QUOTES,ERROR_FOR_DIVISION_BY_ZERO,HIGH_NOT_PRECEDENCE,IGNORE_SPACE,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_UNSIGNED_SUBTRACTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY,PIPES_AS_CONCAT,REAL_AS_FLOAT,STRICT_ALL_TABLES,STRICT_TRANS_TABLES,ANSI,DB2,MAXDB,MSSQL,MYSQL323,MYSQL40,ORACLE,POSTGRESQL,TRADITIONAL", "--wait-timeout=28800"] - networks: - - infrastructure_default - postgres: - hostname: postgres - image: postgres - restart: always - # set shared memory limit when using docker-compose - shm_size: 128mb - # or set shared memory limit when deploy via swarm stack - #volumes: - # - type: tmpfs - # target: /dev/shm - # tmpfs: - # size: 134217728 # 128*2^20 bytes = 128Mb - environment: - POSTGRES_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262 - - networks: - - infrastructure_default -networks: - infrastructure_default: - external: true diff --git a/_deploy/deoloy.azure.prod.yml b/_deploy/deoloy.azure.production.yml similarity index 96% rename from _deploy/deoloy.azure.prod.yml rename to _deploy/deoloy.azure.production.yml index 0cb1e8b..87372a8 100644 --- a/_deploy/deoloy.azure.prod.yml +++ b/_deploy/deoloy.azure.production.yml @@ -3,6 +3,8 @@ services: nextjs-app: # https://sofia.mwhitnessing.com/ hostname: jwpw-app # jwpw-nextjs-app-1 image: docker.d-popov.com/jwpw:latest + deploy: + replicas: 2 #ports: # - "3000:3000" volumes: @@ -30,7 +32,7 @@ services: volumes: - /mnt/docker_volumes/pw/data/mysql:/var/lib/mysql environment: - MARIADB_ROOT_PASSWORD: dwxhns9p9vp248V39xJyRthUsZ2gR9 + # MARIADB_ROOT_PASSWORD: dwxhns9p9vp248V39xJyRthUsZ2gR9 MYSQL_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262 MYSQL_DATABASE: jwpwsofia MYSQL_USER: jwpwsofia @@ -38,7 +40,6 @@ services: networks: - default - infrastructure_default - mariadb_backup: image: alpine:latest volumes: @@ -51,7 +52,6 @@ services: MYSQL_HOST: mariadb # GOOGLE_DRIVE_FOLDER_ID: your_google_drive_folder_id entrypoint: /bin/sh -c - networks: - infrastructure_default command: | diff --git a/_deploy/deploy.homelab.production.yml b/_deploy/homelab.deploy.production.yml similarity index 57% rename from _deploy/deploy.homelab.production.yml rename to _deploy/homelab.deploy.production.yml index cf14df8..402af4d 100644 --- a/_deploy/deploy.homelab.production.yml +++ b/_deploy/homelab.deploy.production.yml @@ -15,7 +15,7 @@ services: stdin_open: true mariadb: hostname: mariadb - image: mariadb #bitnami/mariadb:latest #mariadb:10.4 + image: mariadb #bitnami/mariadb:latest #mariadb:10.4 environment: MARIADB_ROOT_PASSWORD: Pw62L$3332JH MYSQL_ROOT_PASSWORD: Pw62L$3332JH @@ -24,4 +24,20 @@ services: MYSQL_PASSWORD: o74x642Rc8 networks: - default - - mysql_default \ No newline at end of file + - mysql_default + postgres: + deploy: + replicas: 0 + hostname: postgres + image: postgres + restart: always + # set shared memory limit when using docker-compose + shm_size: 128mb + # or set shared memory limit when deploy via swarm stack + #volumes: + # - type: tmpfs + # target: /dev/shm + # tmpfs: + # size: 134217728 # 128*2^20 bytes = 128Mb + environment: + POSTGRES_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262 diff --git a/_doc/notes.mb b/_doc/notes.mb index 4862741..bd38d8e 100644 --- a/_doc/notes.mb +++ b/_doc/notes.mb @@ -164,8 +164,15 @@ SET PASSWORD FOR 'root'@'localhost' = PASSWORD('i4966cWBtP3xJ7BLsbsgo93C8Q5262') GRANT ALL PRIVILEGES ON jwpwsofia.* TO 'jwpwsofia'@'%' IDENTIFIED BY 'dwxhns9p9vp248V39xJyRthUsZ2gR9' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON jwpwsofia.* TO 'jwpwsofia'@'172.22.0.3' IDENTIFIED BY 'dwxhns9p9vp248V39xJyRthUsZ2gR9' WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON jwpwsofia.* TO 'jwpwsofia'@'172.22.0.%' IDENTIFIED BY 'dwxhns9p9vp248V39xJyRthUsZ2gR9' WITH GRANT OPTION; FLUSH PRIVILEGES; exit; +ALTER USER 'jwpwsofia'@'172.22.0.%' IDENTIFIED BY 'dwxhns9p9vp248V39xJyRthUsZ2gR9'; +--if error (does not exist) +CREATE USER 'jwpwsofia'@'172.22.0.%' IDENTIFIED BY 'dwxhns9p9vp248V39xJyRthUsZ2gR9'; +GRANT ALL PRIVILEGES ON jwpwsofia.* TO 'jwpwsofia'@'172.22.0.%' WITH GRANT OPTION; + + #Install depcheck: