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