python 无法在Pycharm中从Docker Image添加解释器

wbgh16ku  于 2023-06-20  发布在  Python
关注(0)|答案(1)|浏览(177)

我有一个包含Dockerfile的项目。它通常用于在部署时在服务器上构建Docker容器。现在我正在尝试在本地使用Docker进行调试。
我在Pycharm中为dockfile构建镜像。在dockerfile成功运行后,我看到了一个docker contrainer和一些图像,如下所示:

按照这个指令,我试图从Docker添加Python解释器。
使用Docker配置解释器

但是,在下拉菜单中,只有三个图像可供选择。我的理解是pycharm_helper图像应该是我正在寻找的图像。

  • python:3
  • Ubuntu:18.04
  • busybox:最新

我也读了这篇文章,并选择了busybox:latest,但我也不知道Python解释器的路径应该是什么。
Is there a repository for pycharm_helpers
有没有人知道如何从我刚刚构建的镜像中添加Python解释器,并在容器中运行我的代码?
谢谢

w7t8yxp5

w7t8yxp51#

Pycharm本身需要一个helper镜像来在远程docker示例中设置运行时。如果您已经公开了docker运行时,pycharm已经为您处理了,如以下请求所示

POST /v1.40/build?t=pycharm_helpers%3AIU-222.4345.14&rm=true HTTP/1.1
accept: application/json
Content-Type: application/tar
encoding: gzip
Host: localhost:7777
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.14.9
Content-Length: 20917196

[tarball]

就我个人而言,我不同意unpinned busybox版本,但这应该由jetbrains来处理,因为他们已经决定了pycharm助手应该是什么样子。
以下是podman的具体问题:
有一种倾向是使用非完全限定的图像名称,例如仅使用python:3.10.1而不是docker.io/library/python:3.10.1,podman坚持在构建图像时使用前缀“localhost”,而不是让您按原样标记图像。因此,pycharm将无法找到“正确的映像”,因为它的名称不是pycharm_helpers,而是localhost/pycharm_helpers。您可以将图像标记为docker.io/library/[image name],pycharm将解析图像。
最后,pycharm将尝试使用seccomp:unconfined创建容器,这在podman中是无效的选项。如果你使用的是代理服务器,也不要提到它。我不知道它为什么被发送,也不知道它应该做什么。
我遇到的另一个podman特定问题是docker插件使用--volumes-from声明来Map来自pycharm helpers image的helpers。看起来,如果你不Map到主机的物理位置,podman将不会把helper文件Map到目标容器(你的项目将从中产生的容器)。因此,您需要通过将pycharm_helpers目录复制到主机中,然后将复制的目录Map到/opt/.pycharm_helpers处的容器中,来重新制作pycharm helpers容器。

相关问题