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

时间:2016-03-21 16:32:07

标签: django docker pycharm docker-compose

我已经导入了PyCharm 5.1 Beta 2一个教程项目,当我使用 docker-compose up 从命令行运行它时工作正常 : 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

当我尝试输入网络或数据库或任何想到的内容时,我收到一条错误消息:Service definition is expected to be a map

那么我应该进入那里呢?

EDIT1(新版本:Pycharm 2016.1版本)

我现在已更新到最新版本,但仍有问题:.IOError: [Errno 21] Is a directory

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

1 个答案:

答案 0 :(得分: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"]

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

$ ssh root@192.168.99.100 -p 2000

注意:我们知道IP和端口可能会发生变化,具体取决于您的泊坞窗和撰写配置

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

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