Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker容器中的Pycharm 5远程python解释器:非零退出代码_Python_Docker_Pycharm_Docker Compose - Fatal编程技术网

Docker容器中的Pycharm 5远程python解释器:非零退出代码

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解

我使用docker compose来启动不同的容器,其中有一个运行我的python应用程序(基于自定义图像,该图像又基于官方的python:3.5.1容器)和其他包含数据库和卷的容器。我想使用Pycharm容器中的解释器(因为版本5中添加的一个很酷的特性是远程Docker解释器)。 我尝试使用“项目解释器>添加>远程>docker”并指定以下内容来添加它:

计算机名称:默认值(是主机上唯一的计算机)

图像名称:通过运行表示 应用程序容器(我尝试使用和不使用“
: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标志运行相同)