Docker的服务名称在PyCharm 5.1 Beta 2中编写远程解释器

Rev*_*ial 5 django pycharm docker docker-compose

我已经导入PyCharm 5.1 Beta 2一个教程项目,当我从命令行使用docker -compose运行它时工作正常 :https:// docs.docker.com/compose/django/

尝试设置远程python解释器会导致问题.

我一直在努力弄清楚服务名称字段的期望: 远程解释器 - docker 撰写窗口 - http:// i.stack.imgur.com/Vah7P.png.

我的docker-compose.yml文件是:

version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
Run Code Online (Sandbox Code Playgroud)

当我尝试输入web或db或任何想到的东西时,我收到一条错误消息:服务定义应该是一个映射

那么我应该进入那里呢?

EDIT1(新版本:Pycharm 2016.1发布)

我现在已更新到最新版本,但仍有问题:.IOError:[Errno 21]是一个目录

很抱歉没有标记所有链接 - 有新的用户链接限制

dan*_*ius 1

我们发现解决此问题的唯一可行方法 (Pycharm 2016.1) 是设置 SSH 远程解释器。

将其添加到主服务 Dockerfile 中:

RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Run Code Online (Sandbox Code Playgroud)

然后像这样登录 docker 容器(在代码示例中传递“screencast”):

$ ssh root@192.168.99.100 -p 2000
Run Code Online (Sandbox Code Playgroud)

注意:我们知道 IP 和端口可能会根据您的 docker 和 compose 配置而变化

对于 PyCharm,只需设置一个远程 SSH 解释器即可完成!

https://www.jetbrains.com/help/pycharm/2016.1/configuring-remote-interpreters-via-ssh.html