我已经导入了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
很抱歉没有标记所有链接 - 有新的用户链接限制
答案 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