Прокси-сервер Docker и CloudSQL
У меня проблемы с подключением моего сервера Django к базе данных Postgres, размещенной на Google Cloud через CloudSQL Proxy с помощью Docker. В настоящее время у меня есть Docker compose файл, который выглядит следующим образом
version: '3'
services:
cloud-sql-proxy:
image: gcr.io/cloudsql-docker/gce-proxy
command: /cloud_sql_proxy --dir=/cloudsql -instances=gamr-335802:us-central1:gamr=tcp:0.0.0.0:5432 -credential_file=/django_backend/gamr-335802-e8f23fcc176c.json
ports:
- "5432:5432"
volumes:
- /cloudsql:/cloudsql
- ./gamr-335802-e8f23fcc176c.json:/django_backend/gamr-335802-e8f23fcc176c.json
restart: always
gamr-backend:
build: ./
command: ./runner.sh
volumes:
- .:/django
ports:
- "8000:8000"
depends_on:
- cloud-sql-proxy
Я думаю, что это может быть проблема с объемами cloud-sql-proxy, но я не уверен. Я получаю ошибку, которая выглядит следующим образом
Поэтому кажется, что мое приложение Django не находит прокси CloudSQL в директории, которую я ему указываю. Мой Dockerfile для приложения django выглядит следующим образом
FROM python:3.8
WORKDIR /django_backend
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN pip install --upgrade pip
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
RUN chmod +x docker.sh
Я пытаюсь исправить это уже некоторое время и являюсь новичком в Docker, поэтому я буду очень признателен, если кто-нибудь сможет помочь. Если необходима какая-либо другая информация, дайте мне знать, и я смогу включить ее.
Находится ли ваш sql-прокси и ваш бэкенд в одном контейнере Docker? Или они находятся в двух контейнерах?
Похоже, что ваш cloudsql-proxy может подключиться к базе данных cloudsql. Но ваше приложение django не может найти прокси, возможно, они находятся в разных контейнерах и поэтому приложение не может подключиться к прокси.