Using docker-compose, I'm trying to view a Flask app from manage.py runserver
that connects with a postgres image but I get the following error:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
Is the server running on host "0.0.0.0" and accepting
TCP/IP connections on port 5432?
MY COMPOSE FILE
version: '3.1'
services:
app:
build: .
ports:
- 5000:5000
volumes:
- /Users/sammy/Projects/my_flask_app:/my_flask_app
container_name: my_flask_app_1
depends_on:
- db
entrypoint: ["python", "manage.py", "runserver"]
db:
image: postgres:10
restart: always
container_name: my_app_db_1
environment:
POSTGRES_USER: ubuntu
POSTGRES_PASSWORD: pickles
POSTGRES_DB: db
ports:
- 5432:5432
FROM MY APP'S settings.py
FILE
POSTGRES = {
'user': "ubuntu",
'pw': "pickles",
'db': "db",
'host': os.getenv('IP', '0.0.0.0'),
'port': '5432',
}
SQLALCHEMY_DATABASE_URI = 'postgresql://%(user)s:\
%(pw)s@%(host)s:%(port)s/%(db)s' % POSTGRES
It builds and runs the app well as I can visit the site and see the Werkzeug traceback interpreter. I'm failing either on the configuration of the Postgres container itself or my Flask's connection to it.
Your host in the settings.py file should be "db". compose exposes hosts on an internal network with the same host names as your services.
POSTGRES = {
'user': "ubuntu",
'pw': "pickles",
'db': "db",
'host': "db",
'port': '5432',
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With