在Vagrant中使用docker-compose配置PyCharm解释器

时间:2016-03-17 11:16:32

标签: vagrant pycharm docker-compose

我有一个基本的流浪盒,其中有docker和docker-compose。 docker-compose.yaml有一个这样的Web服务:

web:
  restart: always
  build: .
  ports: 
    - "5000:5000"
  expose:
    - "5000"
  links:
    - postgres:postgres
  volumes:
    - .:/usr/src/app/
  env_file: .env
  command: python manage.py runserver
#below the postgres service is defined

Vagrantfile:

Vagrant.configure(2) do |config|

  config.vm.box = "phusion/ubuntu-14.04-amd64"

  config.vm.network "private_network", ip: "192.168.33.69"

  config.vm.synced_folder ".", "/vagrant_data"
  # provisioning

web服务使用内容为FROM python:3.5.1-onbuild

的Dockerfile

我安装了PyCharm 5.1专业版Beta 2(版本145.256.43,2016年3月11日)。我想将pycharm的解释器配置为运行web服务的解释器 当我尝试这样做时,在“配置远程python解释器”对话框窗口中,我选择Docker Compose,然后添加一个新的Docker服务器。当我尝试添加docker服务器时,当我把vagrant机器的ip +端口2376(这是输入字段中的默认值)时,我得到一个例外:
screenshot

我有什么遗失吗?

1 个答案:

答案 0 :(得分:3)

好的,我终于开始工作了。 这是我做的:

  1. 去了VM,在/etc/default中,我打开了docker文件。取消注释DOCKER_OPTS行并将其更改为:
    DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
  2. 在我的Vagrantfile(定义运行docker守护程序的VM的那个文件)中,我将已同步的文件夹更改为

    config.vm.synced_folder ".", "/vagrant", disabled: true # make sure you add this line
    config.vm.synced_folder ".", "/home/georgi/Projects/ipad", # /home/georgi.... is the full path of the project on the host machine. This lines makes sure that the path of the project on the host and on the vm are the same.
        owner: 'vagrant',
        group: 'vagrant',
        mount_options: ["dmode=777", "fmode=777"]
    config.vm.synced_folder "~/.PyCharm2016.1/system/tmp", "/home/georgi/.PyCharm2016.1/system/tmp", 
        owner: 'vagrant',
        group: 'vagrant',
        mount_options: ["dmode=777", "fmode=777"]  
    

    此时重启VM。

  3. 在PyCharm中,我打开了项目,转到了File-> Settings-> Project-> Project Interpreter-> Add Remote。选择Docker-Compose。
  4. 在“服务器”部分中,按“新建”。输入API如下: tcp://192.168.33.69:2375(ip是Vmrant文​​件中定义的vm。端口是DOCKER_OPTS中定义的端口。)保持其余部分不变。然后按确定。
  5. 在配置中 - 选择docker-compose.yaml - 关键部分在此处 - 此文件的路径在主机和虚拟机上应该相同。
  6. 服务名称 - 在我的情况下 - web
  7. 编辑:我忘了提 - 我安装了PyCharm 2016.1

    2017年编辑:查看thisthis。较新版本的Docker似乎不接受原始答案中的技巧。