حل مشکل PostgreSQL FATAL: role does not exist error در داکر کامپوز
mohsen•1 سال قبل
ارسال شده در
mohsenبرای بررسی سلامت (Healthcheck) کانتینر PostgreSQL در داکر کامپوز از دستور زیر استفاده می کنیم:
db:
image: postgres
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
labels:
traefik.enable: false
volumes:
- /var/database:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
اما با خطای زیر در لاگ داکر مواجه می شویم:
FATAL role "postgres" does not exist.
برای رفع این خطا باید کاربری که بوسیله متغیر محیطی POSTGRES_USER تعریف کرده ایم را بعنوان ورودی به دستور pg_isready ارسال کنیم:
pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
توجه داشته باشید که اگر بوسیله پارامتر -d نام دیتابیس را مشخص نکنیم با خطای زیر مواجه خواهیم شد:
FATAL: database "db_username" does not exist
که db_username همان نام کاربری ارسال شده به دستور pg_isready است.
توجه: مقادیر مشخص شده به شکل ${POSTGRES_USER} ، متغیر های محیطی هستند که در فایل .env در کنار فایل داکر کامپوز تعریف شده اند.
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!