Docker容器中的Pycharm 5远程python解释器:非零退出代码
我使用docker compose来启动不同的容器,其中有一个运行我的python应用程序(基于自定义图像,该图像又基于官方的python:3.5.1容器)和其他包含数据库和卷的容器。我想使用Pycharm容器中的解释器(因为版本5中添加的一个很酷的特性是远程Docker解释器)。 我尝试使用“项目解释器>添加>远程>docker”并指定以下内容来添加它: 计算机名称:默认值(是主机上唯一的计算机) 图像名称:通过运行表示 应用程序容器(我尝试使用和不使用“Docker容器中的Pycharm 5远程python解释器:非零退出代码,python,docker,pycharm,docker-compose,Python,Docker,Pycharm,Docker Compose,我使用docker compose来启动不同的容器,其中有一个运行我的python应用程序(基于自定义图像,该图像又基于官方的python:3.5.1容器)和其他包含数据库和卷的容器。我想使用Pycharm容器中的解释器(因为版本5中添加的一个很酷的特性是远程Docker解释器)。 我尝试使用“项目解释器>添加>远程>docker”并指定以下内容来添加它: 计算机名称:默认值(是主机上唯一的计算机) 图像名称:通过运行表示 应用程序容器(我尝试使用和不使用“:latest”后缀) python解
:latest
”后缀)
python解释器路径:我尝试了两种默认的“python
”而不是
指定完整路径(在
(集装箱)
但一旦单击ok,Pycharm就无法找到解释器,它给出的唯一输出是:“非零退出代码””
我真的想避免使用SSH。。。那么,是否有人能够连接到Docker解释器,并能向我解释我该怎么做
ps:我还尝试使用端口2376(Pycharm用于连接容器的端口),但它似乎已经被docker自动公开,因为我在尝试显式公开它时出错(Dockerfile中的expose 2376+PORTS:-“2376:2376”在docker compose中)
更新:
通过忽略问题并单击“确定”,我得到了一条更有用的消息(重点是我的):
无法为运行generator3.pydocker://myapp:latest/python出口
代码1,标准:
-----
/opt/webapp/src应该是指向本地项目的路径,或者是以svn+、git+、hg+或bzr开头的VCS url+
-----
这让我说不出话来。。。为什么它应该抱怨容器中的路径?(/opt/webapp/src是我的应用程序的源代码在容器中的位置…我怎么能在容器中引用宿主项目?!)
也许我误解了远程解释器的功能,我不能按照我的意愿使用它,在我的例子中,它是从主机在容器上运行测试。
(而不是使用docker exec..连接到它)。
所以我的目标是使用Pycharm测试/调试容器中的代码。。。这可能吗 您是否尝试过从运行PyCharm的机器到Python调试端口上的容器创建套接字?“default”可能是您的计算机无法理解的名称。尝试改用容器的IP。IP通常以172开头。您可以共享用于创建容器的docker命令行吗?从你的ps来看,我想你用的是-P?为什么不改为-p 2376:2376?“默认值”(如虚拟机IP)由Pycharm自动发现,您不能更改它!我从列出所有可用docker虚拟机的下拉菜单中选择了它。我没有在命令行中使用-p,因为我使用docker compose,正如我在docker compose文件中使用:PORTS:-“2376:2376”时所写的那样,我得到一个错误(在配置文件中指定端口与使用-p标志运行端口相同),您是否尝试过从运行PyCharm的计算机到Python调试端口上的容器创建套接字?“default”可能是您的计算机无法理解的名称。尝试改用容器的IP。IP通常以172开头。您可以共享用于创建容器的docker命令行吗?从你的ps来看,我想你用的是-P?为什么不改为-p 2376:2376?“默认值”(如虚拟机IP)由Pycharm自动发现,您不能更改它!我从列出所有可用docker虚拟机的下拉菜单中选择了它。我没有在命令行中使用-p,因为我使用docker compose,并且当我在docker compose文件中使用:port:-“2376:2376”时,我得到一个错误(在配置文件中指定端口与使用-p标志运行相同)