line 187, in get_new_connection connection = Database.connect(**conn_params) File "/usr/local/lib/python3.9/site-packages/psycopg2/init.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution
On my local machine everything works perfectly.
my docker file
FROM python:3.9-slim-buster
# RUN apt-get update && apt-get install -y libpq-dev \
# gcc \
# postgresql-client
# set work directory
WORKDIR /opt/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /opt/app/requirements.txt
RUN chmod +x /opt/app/requirements.txt
RUN pip install -r requirements.txt
# copy project
COPY . /opt/app/
RUN chmod +x /opt/app/docker-entrypoint.sh
EXPOSE 8000
ENTRYPOINT [ "/opt/app/docker-entrypoint.sh" ]
Here is my docker-compose.yml
version: '3.9'
services:
db:
image: postgres
restart: always
environment:
- POSTGRES_NAME=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_PASS=postgres
volumes:
- postgres_data:/var/postgres/data/
app:
restart: always
build:
context: .
dockerfile: Dockerfile
command: python manage.py runserver 0.0.0.0:8000
container_name: myproj
volumes:
- ./app/:/usr/src/app/
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgres_data:
driver: local
my entrypoint
echo "Apply database migrations"
python manage.py makemigrations
python manage.py migrate
echo "Starting server"
python manage.py runserver 0.0.0.0:8000
exec "$@"
my database settings
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': "5432"
}
What i have tried
- pushing the db container separately but it fails to start
Cloud Run error: Container failed to start. Failed to start and then listen on the port defined by the PORT environment variable
I have set port to 5432, tried running it on port 80 still fails to come online
My app containers fails to start as it cannot connect to db container
could not translate host name db to address: Temporary failure in name resolution