Моя цель состоит в том, чтобы отладить мое приложение django в затмении моего окна, когда оно работает в докере (нет уверенности, что это выполнимо). Мой тест здесь, чтобы увидеть, если код на NT (Windows) или нет:
import os
print ("your OS is: "+os.name)
Для этого теста я не хочу видеть "nt" (windows), а скорее операционную систему контейнера докера (ubuntu).
Что меня смущает, так это то, как контейнер докера связывает код, который у меня есть, с контейнером? Другими словами, если я сделаю изменение в коде затмения, как контейнер «сеть» узнает об этом? Я понял, что том - это то место, где я должен определить путь, но не совсем понял, как это сделать правильно.
Что я сделал, так это (и я новичок в докере):
В моем каталоге eclipse, где находится мой djangoPrj, у меня есть файл docker-compose, такой что:
version: '2'
volumes:
postgis-data:
services:
web:
build:
context: .
dockerfile: Dockerfile.debug
ports:
- "8000:8000"
volumes:
- .:/djangoPrj
links:
- db
db:
image: kartoza/postgis:10.0-2.4
volumes:
- 'postgis-data:/var/lib/postgresql'
environment:
- POSTGRES_DB=tankers_db
- POSTGRES_USER=userABC
- POSTGRES_PASS=passwordABC
- ALLOW_IP_RANGE=0.0.0.0/0
ports:
- 5432:5432
restart: unless-stopped
Мой Dockerfile.debug (не уверен, что нужна последняя строка):
FROM python:3.6
ENV PYTHONUNBUFFERED 1
ENV C_FORCE_ROOT true
RUN mkdir /djangoPrj
RUN mkdir /static_cdn
WORKDIR /djangoPrj
ADD ./djangoPrj /djangoPrj
RUN apt-get upgrade
RUN apt-get update
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
При затмении я настроил Аргумент запуска с помощью сервера запуска 10.0.75.1:8000