我使用docker-compose来启动不同的容器,其中有一个运行我的python应用程序(基于自定义映像,而该映像又基于官方python:3.5.1容器)以及其他包含数据库和卷的容器。我想在Pycharm的容器中使用解释器(因为版本5中添加的一个很酷的功能是远程Docker解释器)。 我尝试使用“Project interpreter> add> remote> docker”添加它并指定以下内容:
计算机名称:默认(是主机上唯一的计算机)
图片名称:通过运行
docker ps
来表示显示的名称 app容器(我尝试使用和不使用“:latest
”后缀)python口译员路径:我尝试了默认的“
python
” 指定完整路径(由which python
返回的路径 容器)
但是一旦点击确定,Pycharm无法找到解释器,它提供的唯一输出是:“非零退出代码”!
我真的想避免使用SSH ...所以,是否有人能够连接到Docker解释器,并且可以解释我该怎么做以及该怎么办?
ps:我也尝试使用端口2376(一个Pycharm用来连接到容器),但它似乎已经被docker自动暴露,因为我在尝试显式暴露它时遇到错误(Dockerfile + PORTS中的EXPOSE 2376) : - “2376:2376”in docker-compose)
更新
忽略问题并点击“确定”我会得到一条更有用的信息(重点是我的):
这让我无言以对......为什么它应该抱怨容器中的路径? (/ opt / webapp / src是我的应用程序的源代码位于容器中的位置...我怎么能在容器中引用主机项目?!) 也许我误解了远程解释器功能,我不能按照自己的意愿使用它,在我的例子中是从主机上对容器运行测试。 (而不是使用无法为docker:// myapp:latest / python,exit运行generator3.py 代码1,stderr: ----- / opt / webapp / src应该是本地项目的路径,或者是以svn +,git +,hg +或bzr +开头的VCS URL -----
docker exec..
连接到它)。
所以我的目标是使用Pycharm来测试/调试容器中的代码......这可能吗?