Может ли мой локальный Eclipse установить библиотеки доступа в Docker-контейнере? - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть образ Docker, который я использую для разработки Django, и через некоторую механику файла xauthority я использую Eclipse из контейнера. По большей части Eclipse работает хорошо, но есть несколько неприятных проблем, которые, похоже, связаны с тем, что он работает внутри контейнера; В конце концов, Докер не был разработан для этой цели. Итак, мне интересно ...

Если я запускаю экземпляр Eclipse на своем локальном компьютере, могу ли я настроить данный проект для доступа к библиотекам, установленным в работающем контейнере? То есть он разрешает импорт, запускает код, используя Python 2 или 3 / Django 1 или 2, в зависимости от отдельного проекта и контейнера, к которому он обращается?

Хост-машина: CentOS 7

Базовое изображение: Ubuntu 16.04

Добавлена ​​информация: Вот моя команда run (хотя есть некоторые сценарии, предшествующие ей для xauth), которая показывает, как я монтирую свои тома в заданную среду Docker:

docker run -h django-env \
-d -p 8000:8000 \
-w=/home/$USER \
--user $USER \
-v $XAUTH:$XAUTH -v $XSOCK:$XSOCK \
-v psql_var_lib:/var/lib/postgresql \
-v psql_var_log:/var/log/postgresql \
-v psql_var_etc:/etc/postgresql \
--mount type=bind,source=$LOCAL_REPO/django-env-opt,target=/opt \
--mount type=bind,source=$LOCAL_REPO/django-env-home,target=/home/$USER \
-e XAUTHORITY=$XAUTH -e DISPLAY \
--entrypoint "" hildy:django_python1 bash -c "sudo /etc/init.d/postgresql 
start && /opt/eclipse/eclipse/eclipse"

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Во-первых, я хотел бы поблагодарить @Timir за то, что он привел меня к правильному ответу и помог мне понять, что мне не нужно запускать Eclipse изнутри контейнера. Попытка сделать это была просто фундаментальным заблуждением о том, для чего предназначен Docker, поскольку эта проблема возникла вскоре после начала изучения Docker. Вы можете называть меня нубом, все в порядке, вы не ошибаетесь ... но на резолюцию.

В моем случае я создал том с docker volume create <volume name I chose> и подключил том к каталогу / usr / контейнера в команде run следующим образом: -v <volume name I chose>:/usr.

Далее в Eclipse я перешел к окну> настройки> pydev> интерпретаторы> интерпретатор python> новый. Затем я просто зашел в каталог на моем хост-компьютере, где находятся тома докеров - на моем хосте CentOS 7, то есть /var/lib/docker/volumes/<volume name I chose>/_data/bin/python3.5, - выбрал это местоположение и дал ему имя. Затем, когда я создал данный проект PyDev, я просто выбрал созданного мной переводчика и занялся бизнесом.

0 голосов
/ 24 апреля 2018

Я использую Eclipse из контейнера.

Вам не нужно.Назначение контейнера - предоставить вам среду компиляции.Пока вы можете обмениваться файлами между контейнером и хостом, все редактирование кода может происходить из вашего локального затмения.

Итак, вопрос в том, как вы делитесь файлами?Через тома.Проще всего сказать: docker run -v <hostdir>:<containerdir>.

Ссылка: https://docs.docker.com/storage/volumes/

...