2016-11-25 9 views
7

Mam dziwny problem, który nie może się wydostać na dno. Mój projekt Django jest utworzony z wykorzystaniem doker-komponowaćPycharm uruchom "Przyspieszenie debugowania za pomocą cythonu" na aplikacji hostowanej w docku

version: '2' 
services: 
    db: 
     image: postgres:9.6.0 
     environment: 
      POSTGRES_PASSWORD: docker 
      POSTGRES_USER: docker 
     ports: 
      - "8001:5432" 
    djweb: 
     build: . 
     command: python dj/manage.py runserver 0.0.0.0:8000 
     volumes: 
      - .:/code 
     ports: 
      - "8000:8000" 
     depends_on: 
      - db 

i dockerfile jest

FROM python:3.5.2 
ENV PYTHONUNBUFFERED 1 
RUN mkdir /code 
WORKDIR /code 
ADD requirements.txt /code/ 
RUN pip install -r requirements.txt 
ADD . /code/ 

W pycharm zacząłem nowy projekt Django skonfigurowany z Döcker komponować i został stworzony w porządku. Kiedy próbuję debugować, otrzymuję zwykły:

A teraz problem. Nie mogę wydawać się być w stanie uruchomić polecenie setup_cython, które Pycharm sugeruje na moim kontenerze djweb z powodu dziwnego błędu tylko do odczytu. Będę wdzięczny jeśli ktoś może wskazać mi w dobrym kierunku (I prawdopodobnie trzeba dodać objętości do mojego kontenera lub ??? - widocznie pycharm dodaje również inne obrazy/pojemniki u boku moje)

[email protected]996472:/# "/usr/local/bin/python" "/opt/.pycharm_helpers/pydev/setup_cython.py" build_ext --inplace
running build_ext building '_pydevd_bundle.pydevd_cython' extension creating build error: could not create 'build': Read-only file system

Odpowiedz

8

biegałam do ten sam problem i udało się go rozwiązać za pomocą polecenia w następujący sposób:

docker run -t -i --volumes-from pycharm_helpers_PY-163.10154.50 IMAGE_NAME \ 
/usr/bin/python /opt/.pycharm_helpers/pydev/setup_cython.py build_ext --inplace 

Będziesz prawdopodobnie trzeba wymienić 163.10154.50 z własnym przykład - znalazłem kopalni w pycharm ->View ->Tool Windows ->Docker, w widok, który pojawia się pod Docker ->Containers.

nazwa_obrazu można znaleźć z docker ps

Uwaga - Na mojej konfiguracji używam Döcker maszynę i trzeba uruchomić eval $(docker-machine env) od terminalu pierwszy.