113 lines
4.6 KiB
YAML
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
|