通过DockerCompose配置远程解释器
注:
1.此功能仅在专业版中支持。此版本是商业版,它提供了一套出色的工具和功能。
2.以下内容仅在安装并启用Docker集成和Python Docker插件时有效!
先决条件
确保满足以下先决条件:
- Docker已安装。这里将使用 Windows 安装。 请注意,您可能希望在不同平台上重复本教程;然后使用Docker安装macOS 和 Linux(Ubuntu,其他与发行版相关的指令也可用)。
- 在开始使用Docker之前,请确保已启用Docker Integration插件。该插件与PyCharm捆绑在一起,默认情况下处于**状态。如果插件没有被**,请在Managing Plugins中的说明在 Settings / Preferences Dialog对话框的Plugins settings页面上启用它。
- 在开始使用Docker之前,请确保已启用Python Docker插件。该插件与PyCharm捆绑在一起,默认情况下处于**状态。如果插件没有被**,请在Managing Plugins中的说明在 Settings / Preferences Dialog对话框的Plugins settings页面上启用它。
- 此外,对于Windows,右键单击Docker whale图标,在context菜单中选择Settings,然后在General页面中选择Expose daemon复选框:
准备一个示例
为了展示Docker Compose应用程序的实际示例,这里将使用一个Django应用程序,其中PostgreSQL数据库在一个单独的容器中运行。 从GitHub获取项目, 并在PyCharm(File | Open)中打开它。
对于这个Django应用程序,我们应该创建两个容器:一个用于数据库,另一个用于应用程序本身。使用Docker Compose将两个容器链接在一起。
为Docker和Docker-Compose添加文件
在Project工具窗口中,右键单击project root目录,然后选择New | File (Alt+Insert),输入文件名(此处是Dockerfile)并输入以下代码:
接下来,对docker-compose.yml文件重复相同的步骤并输入以下代码(注:支持Docker Compose文件格式版本从3.0到3.3。):
docker-compose.yml文件定义了2个服务: web和db,并将它们链接在一起。
配置Docker
打开Settings 对话框(Ctrl+Alt+S),然后单Build, Execution, Deployment节点下的Docker页面 。单击图标"+"去创建DOCKER服务器。
接受suggested的默认值:
对于macOS,选择Docker for Mac连接到Docker daemon。接下来,应用更改。
配置Docker Compose作为远程解释器
现在定义一个基于Docker-Compose的远程解释器。要执行此操作,请打开Settings 对话框(按 Ctrl+Alt+S)。单击Project Interpreter页面,在该页上单击Project Interprete字段旁边的“齿轮图标”,并从下拉列表中选择Add:
在打开的对话框中,选择Docker Compose选项,从下拉列表中选择Docker服务器,Docker Compose服务(此处为web),配置文件(此处为docker-compose.yml)和图像名称(此处为python)。
选择web的原因在于,在配置基于Docker-Compose的解释器之后,将能够创建定期运行配置,这将改变选择的容器的行为。因此,如果想调试容器中的代码,那就是应该在这里选择的代码。compose文件中的所有其他容器将始终与此一起启动,但是您将无法从PyCharm影响它们的行为 - 它们的行为就像从命令行docker-compose up使用命令启动它们一样。
接下来,等待PyCharm启动Docker-Compose配置进行扫描和索引:
使用Docker工具窗口
由于已经配置了Docker,因此Docker工具窗口按钮出现在PyCharm主窗口的底部:
单击此按钮,看到您的容器正在运行:
配置数据库凭据
修改Django项目中的Stutux.Py文件的数据库部分,以添加数据库配置细节:
在Docker-Compose下运行应用程序
首先,执行Django应用程序时,必须运行迁移。
为此,请选择Tools | Run 'manage.py' task并输入migrate:
接下来,创建一个普通的Django服务器运行/调试配置。在主菜单上选择Run | Edit Configurations... ; 在打开的对话框中单击+并选择Django Server
您唯一应该注意的是,Host字段必须设置为 0.0.0.0- 以确保我们监听来自Docker容器外部的请求。
启动此配置(Run | Run 'RunDjangoApp'):
要在Web浏览器中查看输出,请转到http:// localhost:8000 (在地址栏中,更改0.0.0.0为localhost)(注:如果您使用的是Docker Machine,请改用机器的IP地址。):
在Docker-Compose下调试您的应用程序
接下来在Docker Compose的调试模式下启动Django应用程序。为此,请设置断点(此处断点在模板中设置),然后在主菜单上选择Run | Debug 'RunDjangoApp':
结果如下所示:
概要
总结一下在PyCharm的帮助下所做的工作:
- 从GitHub下载了一个Django应用程序并打开它。
- 在项目中添加了特定的Docker Compose文件。
- 基于Docker Compose配置了一个远程解释器。
- 在Docker Compose容器中运行了Django应用程序。
- 在Docker Compose容器中调试了Django应用程序的模板。
更多资源请查看【PyCharm入门****】