我有一个用于Django开发的Docker镜像,通过一些xauthority文件机制,我在容器中使用Eclipse。在大多数情况下,Eclipse运行良好,但有一些唠叨问题似乎与它在容器内运行的事实有关;毕竟,Docker并没有真正为此目的而开发。所以,我想知道......
如果我在本地计算机上运行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"
答案 0 :(得分:2)
我在容器中使用Eclipse。
你不需要。容器的目的是为您提供编译环境。只要您可以在容器和主机之间共享文件,所有代码编辑都可以在您的本地eclipse中进行。
所以问题是你如何共享文件?通过卷。最简单的方法是说docker run -v <hostdir>:<containerdir>
。
答案 1 :(得分:0)
首先,我要感谢@Timir引导我找到正确的答案并帮助我意识到我不需要从容器中运行Eclipse。试图这样做只是对Docker的基本误解,因为这个问题在开始学习Docker之后很快就出现了。你可以叫我一个菜鸟,没关系,你没有错......但是决定。
就我而言,我所做的是创建一个带有docker volume create <volume name I chose>
的卷,并将卷装入run命令中的容器&usr /目录,如下所示:-v <volume name I chose>:/usr
。
接下来,在Eclipse中我导航到窗口&gt;偏好&gt;的PyDev&GT;口译员&gt; python interpreter&gt;新。然后,我刚刚进入我的主机上目录中的docker卷的目录 - 在我的CentOS 7主机上,即/var/lib/docker/volumes/<volume name I chose>/_data/bin/python3.5
- 选择该位置并为其命名。然后,当我创建一个给定的PyDev项目时,我只选择了我创建的解释器,并且我在做生意。