не может получить доступ к Postgres контейнеру в docker compose - PullRequest
0 голосов
/ 03 мая 2020

У меня есть docker -compose.yml с двумя службами, пользовательским образом (служба, называемая кодом) и сервером Postgres. Ниже я присоединяю Dockerfile к построенному образу app первого сервиса, а затем docker -compose.yml:

 # Dockerfile of custom image

 FROM ubuntu:latest

 RUN apt-get update \
   && apt-get install -y python3-pip python3-dev \
   && cd /usr/local/bin \
   && ln -s /usr/bin/python3 python \
   && pip3 install --upgrade pip

 WORKDIR /usr/app

 COPY ./* ${PWD}/

 ADD ./requirements.txt ./
 RUN pip install -r requirements.txt
 ADD ./ ./


 # docker-compose.yml
 version: '3.2'

 services:

   code:
     image: app:latest
     ports:
      - 5001:5001
     networks:
       - docker-elk_elk

   postgres:
     image: postgres:9.5-alpine
     environment:
       POSTGRES_USER: postgres     # define credentials
       POSTGRES_PASSWORD: postgres # define credentials
       POSTGRES_DB: postgres       # define database
     ports:
      - 5432:5432            # Postgres port
     networks:
       - docker-elk_elk

 networks:
    docker-elk_elk:
            external: true

Также здесь docker-elk_elk указывает на другую сеть, где другой docker -compose стека работает, и я хочу, чтобы docker -poize также присоединился. Однако когда я запускаю docker-compose run code bash и получаю оболочку в сервисе code, curl https://postgres:5432 выдает следующее сообщение: curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to postgres:5432. Я пробовал также curl http://postgres:5432, который вернулся curl: (52) Empty reply from server. Кроме того, сеть docker-elk_elk (явно созданная стекомasticsearch-logta sh -kibaba) при выполнении docker network ls дает

  NETWORK ID          NAME                            DRIVER              SCOPE
  8a54fe394fe8        docker-elk_elk                  bridge              local

Я действительно растерян и растерян, может кто-нибудь мне помочь? Если есть какая-либо информация, которая может оказаться необходимой или полезной и не была включена выше, дайте мне знать, пожалуйста.

Я забыл упомянуть, что app - это просто python приложение (не веб) приложение или другие python сложные библиотеки).

PS Что-то, что, возможно, я должен был упомянуть выше. Я хочу использовать контейнер ubuntu с приложением внутри для запроса (и отправки данных) как в postgres, так и в Elasticsearch (который находится в другом docker -компонентном стеке) БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...