【问题标题】:Can my Local Eclipse Install Access Libraries in Docker Container?我的本地 Eclipse 可以在 Docker 容器中安装访问库吗?
【发布时间】:2018-10-05 05:05:59
【问题描述】:

我有一个用于 Django 开发的 Docker 映像,并且通过一些 xauthority 文件机制,我在容器内使用 Eclipse。在大多数情况下,Eclipse 运行良好,但有一些烦人的问题似乎与它在容器内运行的事实有关。毕竟,Docker 并不是为了这个目的而开发的。所以,我想知道...

如果我在本地计算机上运行 Eclipse 实例,我可以配置给定项目以访问安装在正在运行的容器中的库吗?也就是说,它是否解析导入,使用 Python 2 或 3/Django 1 或 2 运行代码,具体取决于单个项目和它正在访问的容器?

主机:CentOS 7

基础镜像:Ubuntu 16.04

添加信息: 这是我的运行命令(认为在它之前有一些用于 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"

【问题讨论】:

    标签: python django eclipse ubuntu-16.04 centos7


    【解决方案1】:

    我在容器中使用 Eclipse。

    你不需要。容器的目的是为你提供一个编译环境。只要您可以在容器和主机之间共享文件,所有代码编辑都可以在您的本地 Eclipse 中进行。

    所以问题是如何共享文件?通过卷。最简单的方法是说docker run -v <hostdir>:<containerdir>

    参考:https://docs.docker.com/storage/volumes/

    【讨论】:

    • 我拥有的是一个我挂载的包含我的源代码的目录,几乎就像一个模拟主目录。你是说我应该通过docker volume create 创建一个包含我的python 库的docker 卷吗?如果是这样,我如何将我的 PyDev 解释器指向它们,然后在容器中运行代码?
    • 我在 OP 中添加了我的运行脚本,这样你就可以看到我是如何安装卷的。
    • 不是通过volume create,像现在一样使用-v hostdir:containerdir。因此,如果您需要导入 Postgres 库,您可以将它们从主机目录 psql_var_lib 导入到 eclipse 中。 Django 库类似。
    • 你最终让我走上了正确的道路。我在这里回答了我自己的问题,但是如果您修改答案以显示使事情按照我在 OP 中的预期工作的步骤,我很乐意将您的答案标记为已接受。
    【解决方案2】:

    首先,我要感谢@Timir 引导我找到正确答案并帮助我意识到我不需要从容器中运行 Eclipse。尝试这样做只是对 Docker 用途的根本误解,因为这个问题是在刚开始学习 Docker 后不久出现的。你可以叫我菜鸟,没关系,你没有错……但要解决这个问题。

    就我而言,我所做的是使用docker volume create <volume name I chose> 创建一个卷,并在运行命令中将该卷挂载到容器的/usr/ 目录中,如下所示:-v <volume name I chose>:/usr

    接下来,在 Eclipse 中,我导航到窗口 > 首选项 > pydev> 解释器 > python 解释器 > 新建。然后,我只是去了我的主机上 docker 卷所在的目录 - 在我的 CentOS 7 主机上,即/var/lib/docker/volumes/<volume name I chose>/_data/bin/python3.5 - 选择那个位置并给它一个名字。然后当我创建一个给定的 PyDev 项目时,我只是选择了我创建的解释器,然后我就开始做生意了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 2017-10-26
      相关资源
      最近更新 更多