Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when using overrides/compose.postgres.yaml for postgres database setup #1434

Open
thuy4tbn99 opened this issue Jul 12, 2024 · 3 comments
Labels

Comments

@thuy4tbn99
Copy link

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

  1. 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:
"""

  1. Then I go to http://localhost:8080/ in the browser. I got an error
    image

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.
image

  1. Error from docker-compose log
    image

Observed result

Expected result

Stacktrace / full error message if available

(paste here)
@thuy4tbn99 thuy4tbn99 added the bug label Jul 12, 2024
@letajmal
Copy link

check the logs of create-site container. It returned with a non-zero exit code, means it failed.

@revant
Copy link
Collaborator

revant commented Aug 13, 2024

db:
image: mariadb:10.6

This is not overridden.

Hope someone helps you, I don't use docker compose.

@letajmal
Copy link

db:
image: mariadb:10.6

you are still using mariadb
override with this file for postgresql
overrides/compose.postgres.yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants