69 votes

Exécuter la console Python via docker-compose sur Pycharm

J'ai quelques problèmes pour exécuter pycharm avec un interprète python distant via docker-compose. Tout fonctionne parfaitement, sauf la console Python, qui affiche le message suivant lorsque j'appuie sur le bouton d'exécution :

"Erreur : Impossible de trouver le nom du conteneur pour le service "web" à partir de sortie de docker-compose "

Je ne comprends vraiment pas pourquoi je continue à montrer que si mon docker-compose.yml fournit un web service.

Une aide ?

EDITAR:

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:test@pypi.defensoria.to.gov.br: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 du Dockerfile de l'image python, le Dockerfile web se contente de déclarer à partir de cette image et de copier le dossier source dans le conteneur.

0 votes

Non... honnêtement, j'ai abandonné il y a des mois. J'exécute une instance de jupyter via docker pour utiliser un shell plus ingénieux sur mon projet.

2 votes

Le problème a été résolu mais a régressé : youtrack.jetbrains.com/issue/PY-18668#tab=Comments

1 votes

Autant documenter ça ici : youtrack.jetbrains.com/issue/PY-18748 Voici le ticket, en date du 19 juillet, il a été corrigé, il doit juste être publié. -- jeu d'attente

1voto

Pablo Martinez Points 321

Je pense que c'est un problème de chaîne de dépendance, web dépend de python Ainsi, lorsque le python Le conteneur se lève, web un n'existe toujours pas. Cela peut causer l'erreur.

Cheers

0voto

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X