web-dev-qa-db-fra.com

Exécutez Python Console via docker-compose sur Pycharm

Je rencontre des problèmes lors de l'exécution de pycharm avec un interpréteur distant python via docker-compose. Tout fonctionne très bien sauf Python lorsque j'appuie sur le bouton d'exécution). affiche simplement le message suivant:

"Erreur: impossible de localiser le nom du conteneur pour le service" web "à partir de la sortie docker-compose"

Je ne peux vraiment pas comprendre pourquoi cela me fait continuer de montrer que si mon docker-compose.yml fournit un service web.

De l'aide?

MODIFIER:

docker-compose.yml

version: '2'

volumes:
  dados:
    driver: local
  media:
    driver: local
  static:
    driver: local

services:
  beat:
    build: Docker/beat
    depends_on: 
      - web
      - worker
    restart: always
    volumes:
      - ./src:/app/src
  db:
    build: Docker/postgres
    ports:
      - 5433:5432
    restart: always
    volumes:
      - dados:/var/lib/postgresql/data
  jupyter:
    build: Docker/jupyter
    command: jupyter notebook
    depends_on: 
      - web
    ports:
      - 8888:8888
    volumes:
      - ./src:/app/src
  python:
    build:
      context: Docker/python
      args:
        REQUIREMENTS_ENV: 'dev'
    image: helpdesk/python:3.6
  redis:
    image: redis:3.2.6
    ports:
      - 6379:6379
    restart: always
  web:
    build:
      context: .
      dockerfile: Docker/web/Dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    depends_on:
      - python
      - db
    ports:
      - 8001:8000
    restart: always
    volumes:
      - ./src:/app/src
  worker:
    build: Docker/worker
    depends_on: 
      - web
      - redis
    restart: always
    volumes:
      - ./src:/app/src

Dockerfile

FROM python:3.6

# Set requirements environment
ARG REQUIREMENTS_ENV
ENV REQUIREMENTS_ENV ${REQUIREMENTS_ENV:-prod}

# Set PYTHONUNBUFFERED so the output is displayed in the Docker log
ENV PYTHONUNBUFFERED=1

# Install apt-transport-https
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y \
        apt-transport-https

# Configure yarn repo
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

# Install APT dependencies
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y \
        locales \
        openssl \
        yarn

# Set locale
RUN locale-gen pt_BR.UTF-8 && \
    localedef -i pt_BR -c -f UTF-8 -A /usr/share/locale/locale.alias pt_BR.UTF-8

ENV LANG pt_BR.UTF-8
ENV LANGUAGE pt_BR.UTF-8
ENV LC_ALL pt_BR.UTF-8

# Copy requirements files to the container
RUN mkdir -p /tmp/requirements
COPY requirements/requirements-common.txt \
    requirements/requirements-$REQUIREMENTS_ENV.txt \
    /tmp/requirements/

# Install requirements
RUN pip install \
    -i http://root:[email protected]:4040/root/pypi/+simple/ \
    --trusted-Host pypi.defensoria.to.gov.br \
    -r /tmp/requirements/requirements-$REQUIREMENTS_ENV.txt

# Remove requirements temp folder
RUN rm -rf /tmp/requirements

Il s'agit de l'image Dockerfile python, le Dockerfile Web déclare simplement à partir de cette image et copie le dossier source dans le conteneur.

66

Je pense que c'est un problème de chaîne de dépendances, web dépend de python donc, quand le conteneur python se lève, web on n'existe toujours pas. Cela peut provoquer l'erreur.

À votre santé

1
Pablo Martinez

L'installation des bibliothèques requises via la ligne de commande et l'exécution de l'interpréteur python à partir du PATH devrait suffire.

Vous pouvez également vous référer au manuel JetBrains, pour savoir comment ils ont configuré pour les interprètes de leurs IDE.

0
Abdullah Khilji