frappe_docker
frappe_docker copied to clipboard
Error when using overrides/compose.postgres.yaml for postgres database setup
Description of the issue
I deploy frappe-docker on ubuntu 22.04. I use the overrides/compose.postgres.yaml for postgres database setup. However when I access fontend via http://localhost:8080/, it returns 504 Gateway Time-out and docker-compose logs show an error related to "pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')". I track the error and see frappe using self.create_connection() from mariadb/database.py instead of postgres.database.py
Context information (for bug reports)
Steps to reproduce the issue
- docker-compose -f pwd_new.yml -f overrides/compose.postgres.yaml up Here is the changed file pwd_new.yml I made: """ version: "3"
services: backend: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: on-failure volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs
configurator: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: none entrypoint: - bash - -c # add redis_socketio for backward compatibility command: - > ls -1 apps > sites/apps.txt; bench set-config -g db_host $$DB_HOST; bench set-config -gp db_port $$DB_PORT; bench set-config -g db_type "postgres"; bench set-config -g db_name ${POSTGRES_DB}; bench set-config -g db_password ${POSTGRES_PASSWORD}; bench set-config -g root_login "postgres"; bench set-config -g root_password "travis";
bench set-config -g redis_cache "redis://$$REDIS_CACHE";
bench set-config -g redis_queue "redis://$$REDIS_QUEUE";
bench set-config -g redis_socketio "redis://$$REDIS_QUEUE";
bench set-config -gp socketio_port $$SOCKETIO_PORT;
environment:
DB_HOST: db
DB_PORT: "5432"
REDIS_CACHE: redis-cache:6379
REDIS_QUEUE: redis-queue:6379
SOCKETIO_PORT: "9000"
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs
create-site:
image: frappe/erpnext:v15.29.3
deploy:
restart_policy:
condition: none
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs
entrypoint:
- bash
- -c
command:
- >
wait-for-it -t 120 db:5432;
wait-for-it -t 120 redis-cache:6379;
wait-for-it -t 120 redis-queue:6379;
export start=date +%s
;
until [[ -n grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"
]] &&
[[ -n grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"
]] &&
[[ -n grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"
]];
do
echo "Waiting for sites/common_site_config.json to be created";
sleep 5;
if (( date +%s
-start > 120 )); then
echo "could not find sites/common_site_config.json with required keys";
exit 1
fi
done;
echo "sites/common_site_config.json found";
bench new-site --db-type postgres --install-app erpnext --set-default frontend;
db: image: mariadb:10.6 healthcheck: test: mysqladmin ping -h localhost --password=admin interval: 1s retries: 15 deploy: restart_policy: condition: on-failure command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --skip-character-set-client-handshake - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 environment: MYSQL_ROOT_PASSWORD: admin volumes: - db-data:/var/lib/mysql
frontend: image: frappe/erpnext:v15.29.3 depends_on: - websocket deploy: restart_policy: condition: on-failure command: - nginx-entrypoint.sh environment: BACKEND: backend:8000 FRAPPE_SITE_NAME_HEADER: frontend SOCKETIO: websocket:9000 UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 UPSTREAM_REAL_IP_HEADER: X-Forwarded-For UPSTREAM_REAL_IP_RECURSIVE: "off" PROXY_READ_TIMEOUT: 120 CLIENT_MAX_BODY_SIZE: 50m volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs ports: - "8080:8080"
queue-long: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - long,default,short volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs
queue-short: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - short,default volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs
redis-queue: image: redis:6.2-alpine deploy: restart_policy: condition: on-failure volumes: - redis-queue-data:/data
redis-cache: image: redis:6.2-alpine deploy: restart_policy: condition: on-failure volumes: - redis-cache-data:/data
scheduler: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: on-failure command: - bench - schedule volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs
websocket: image: frappe/erpnext:v15.29.3 deploy: restart_policy: condition: on-failure command: - node - /home/frappe/frappe-bench/apps/frappe/socketio.js volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs
volumes: db-data: redis-queue-data: redis-cache-data: sites: logs: """
- Then I go to http://localhost:8080/ in the browser. I got an error
3 I check docker container via command docker ps -a and I see the frappe_docker_create_site_1 and frappe_docker_configurator_1 exited.
- Error from docker-compose log
Observed result
Expected result
Stacktrace / full error message if available
(paste here)