Прокси-сервер 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 не может найти прокси, возможно, они находятся в разных контейнерах и поэтому приложение не может подключиться к прокси.

Вернуться на верх