Files
mwitnessing/_deploy/deoloy.azure.prod.yml
2024-02-22 04:19:38 +02:00

113 lines
4.6 KiB
YAML

version: "3"
services:
nextjs-app: # https://sofia.mwhitnessing.com/
hostname: jwpw-app # jwpw-nextjs-app-1
image: docker.d-popov.com/jwpw:latest
#ports:
# - "3000:3000"
volumes:
- /mnt/docker_volumes/pw/app/public/content/uploads/:/app/public/content/uploads
environment:
- NODE_ENV=prod
- TZ=Europe/Sofia
#- DATABASE_URL=mysql://jwpwsofia:dwxhns9p9vp248V39xJyRthUsZ2gR9@mariadb:3306/jwpwsofia
#- DATABASE_URL=postgres://jwpwsofia:dwxhns9p9vp248V39xJyRthUsZ2gR9@mariadb:3306/jwpwsofia
- UPDATE_CODE_FROM_GIT=true # Set to true to pull latest code from Git
- GIT_BRANCH=mariadb
- GIT_USERNAME=deploy
- GIT_PASSWORD=%L3Kr2R438u4F7^%40
command: sh -c " cd /app && npm install && npm run nodeenv; tail -f /dev/null"
#command: sh -c " cd /app && n
tty: true
stdin_open: true
restart: always
networks:
- infrastructure_default
mariadb:
hostname: mariadb
image: bitnami/mariadb:latest #mariadb:10.4
volumes:
- /mnt/docker_volumes/pw/data/mysql:/var/lib/mysql
environment:
MYSQL_DATABASE: jwpwsofia
MYSQL_USER: jwpwsofia
MYSQL_PASSWORD: dwxhns9p9vp248V39xJyRthUsZ2gR9
#MARIADB_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262
MYSQL_ROOT_PASSWORD: i4966cWBtP3xJ7BLsbsgo93C8Q5262
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
# nextjs-app-staging: # https://sofia.mwhitnessing.com/
# image: docker.d-popov.com/jwpw:latest
# ports:
# - "3000:3000"
# volumes:
# - /mnt/docker_volumes/pw/app/.env.sofia:/app/.env.prod
# environment:
# - NODE_ENV=demo
# - TZ=Europe/Sofia
# - DATABASE_URL=mysql://jwpwsofia:dwxhns9p9vp248V39xJyRthUsZ2gR9@mariadb:3306/jwpwsofia
# - UPDATE_CODE_FROM_GIT=true # Set to true to pull latest code from Git
# - GIT_USERNAME=deploy
# - GIT_PASSWORD=%L3Kr2R438u4F7^%40
# - NEXT_PUBLIC_HOST=demo.mwhitnessing.com
# - NEXTAUTH_URL= https://demo.mwhitnessing.com
# command: sh -c " cd /app && npm install && npm run nodeenv; tail -f /dev/null"
# tty: true
# stdin_open: true
# restart: always
# networks:
# - infrastructure_default
mariadb_backup:
image: alpine:latest
volumes:
- /mnt/docker_volumes/pw/data/backup:/backup
# - ./gdrive_service_account.json:/root/.gdrive_service_account.json
environment:
MYSQL_USER: jwpwsofia
MYSQL_PASSWORD: dwxhns9p9vp248V39xJyRthUsZ2gR9
MYSQL_DATABASE: jwpwsofia
MYSQL_HOST: mariadb
# GOOGLE_DRIVE_FOLDER_ID: your_google_drive_folder_id
entrypoint: /bin/sh -c
networks:
- infrastructure_default
command: |
"apk add --no-cache mysql-client curl && \
echo '* 2 * * * mysqldump -h $$MYSQL_HOST -P 3306 -u$$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE > /backup/$$(date +\\%Y-\\%m-\\%d-\\%H\\%M\\%S)-$$MYSQL_DATABASE.sql' > /etc/crontabs/root && \
crond -f -d 8"
# wget -q https://github.com/prasmussen/gdrive/releases/download/2.1.0/gdrive-linux-x64 -O /usr/bin/gdrive && \
# chmod +x /usr/bin/gdrive && \
# gdrive about --service-account /root/.gdrive_service_account.json && \
# echo '0 * * * * /usr/bin/mysqldump -h $$MYSQL_HOST -u$$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE | gzip > /backup/$$(date +\\%Y-\\%m-\\%d-\\%H\\%M\\%S)-$$MYSQL_DATABASE.sql.gz && gdrive upload --parent $$GOOGLE_DRIVE_FOLDER_ID --service-account /root/.gdrive_service_account.json /backup/$$(date +\\%Y-\\%m-\\%d-\\%H\\%M\\%S)-$$MYSQL_DATABASE.sql.gz' > /etc/crontabs/root && crond -f -d 8"
networks:
infrastructure_default:
external: true