【PyCharm教程】PyCharm 使用 Docker Compose 配置 Python 解释器

先决条件
确保满足以下先决条件:
- 你有一个稳定的互联网连接。
确保您有稳定的 Internet 连接,以便 PyCharm 可以下载和运行busybox:latest
. 成功配置 Docker 后,就可以下线了。
- 安装了 Docker。您可以在各种平台上安装 Docker,但这里我们将使用Windows安装。
请注意,您可能希望在不同平台上重复本教程;然后使用macOS和Linux的 Docker 安装(Ubuntu,也可以使用其他与发行版相关的说明)。
- 在开始使用 Docker 之前,请确保已启用Docker插件。该插件与 PyCharm 捆绑在一起,默认情况下是激活的。如果插件未激活,请在 IDE 设置的插件Ctrl+Alt+S页面上启用它,如安装插件中所述。
在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,选择Build、Execution、Deployment | Docker,然后在Connect to Docker daemon with下为 <您的操作系统> 选择 Docker。例如,如果您使用的是 macOS,请选择Docker for Mac。在Docker 设置中查看更多详细信息。
请注意,您不能将任何 Python 包安装到基于 Docker 的项目解释器中。
准备一个例子
让我们使用 Django 应用程序和在单独容器中运行的 PostgreSQL 数据库。
- 按Ctrl+Alt+S打开 IDE 设置并选择Languages & Frameworks | 姜戈。确保选中启用 Django 支持复选框。然后单击确定关闭项目设置。
- 从 GitHub下载项目存档,解压缩并保存在本地驱动器上。
- 选择文件 | 从主菜单打开并指定下载项目的路径。
- PyCharm 可以根据requirements.txt文件中记录的项目需求建议创建一个虚拟环境。
单击确定以创建环境。
完成此操作后,您的示例已准备就绪,您可以开始配置 docker 容器。对于这个 Django 应用程序,让我们创建两个容器:一个用于数据库,一个用于应用程序本身。Docker Compose 会将两个容器链接在一起。
为 Docker 和 Docker Compose 添加文件
- 在Project工具窗口中,右键单击项目根目录并选择New | 来自上下文菜单的文件。输入文件名:Dockerfile。
将以下代码复制并粘贴到Dockerfile文件中:
FROM python:3.6.7 WORKDIR /app # By copying over requirements first, we make sure that Docker will cache # our installed requirements rather than reinstall them on every build COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt # Now copy in our code, and run it COPY . /app EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
- 然后再次右键单击项目根目录,选择New | 从上下文菜单中创建文件,然后创建docker -compose.yml文件。
将以下代码复制并粘贴到docker-compose.yml文件中。
version: '2' services: web: build: . ports: - "8000:8000" volumes: - .:/app links: - db db: image: "postgres:9.6" ports: - "5432:5432" environment: POSTGRES_PASSWORD: hunter2
如果需要,您可以在docker-compose.yml文件中使用变量替换,例如:
db: image: "postgres:${POSTGRES_VERSION}"
该文件定义了两个服务:web
和db
,并将它们链接在一起。
配置 Docker
现在您已经准备好示例,让我们配置 Docker。
- 按Ctrl+Alt+S打开 IDE 设置并选择Build、Execution、Deployment | 码头工人。
- 单击
以创建 Docker 服务器。接受建议的默认值:
macOS
Windows
路径映射设置在Linux 上不可用。因此,如果您想将虚拟机上的某些目录映射到本地 Linux 机器上的某个路径,则必须手动执行此操作。
单击确定以保存更改。
将 Docker Compose 配置为远程解释器
现在让我们定义一个基于 Docker-Compose 的远程解释器。
- 确保您已在计算机上下载并安装Python。
执行以下操作之一:
- 单击Python 解释器选择器并选择添加解释器。
- 按Ctrl+Alt+S打开项目设置/首选项并转到项目 <项目名称> | Python 解释器。单击
并选择添加。
- 在打开的对话框中,选择Docker Compose选项,从列表中选择 Docker 服务器、Docker Compose 服务(此处
web
)、配置文件(此处docker-compose.yml
)和 Python 解释器路径(此处python
)。
我们为什么选择web
?这种选择的原因是,在配置了基于 Docker-Compose 的解释器之后,我们将能够创建常规运行配置,从而改变我们选择的容器的行为。因此,如果我们想在一个容器中调试代码,我们应该在这里选择那个。
接下来,等待 PyCharm 启动 Docker Compose 配置以扫描和索引:
使用 Docker 工具窗口
由于您已配置 Docker,服务工具窗口将出现在 PyCharm 主窗口的底部。您可以单击组旁边的装订线
services
以启动db
和web
服务。
配置数据库凭据
修改Django 项目中settings.pyDATABASES
文件的部分以添加数据库配置详细信息:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'hunter2',
'HOST': 'db'
}
}
在 Docker-Compose 下运行您的应用程序
- 要执行 Django 应用程序,请运行迁移。选择工具 | 从主菜单运行“manage.py”任务
migrate
并输入:
- 运行 Django 服务器运行/调试配置。为此,从主菜单中选择运行 | 编辑配置... 在打开的对话框中单击
并选择Django Server:
唯一需要注意的是Host字段必须设置为0.0.0.0 - 以确保我们侦听来自 Docker 容器外部的请求。
- 要运行新创建的配置,请选择Run | 从主菜单运行“RunDjangoApp” 。
要在 Web 浏览器中查看输出,请转到http://localhost:8000(在地址栏中,将0.0.0.0更改为localhost):
如果您使用的是 Docker 机器,请改用机器的 IP 地址。
创建运行/调试配置后,您还可以在 Docker Compose 下调试您的应用程序。为此,设置一个断点(对于 Django 应用程序,您可以在模板中设置它),然后从主菜单中选择Run | 调试 'RunDjangoApp',或者只需单击运行/调试配置下拉列表旁边并
RunDjangoApp
选择运行/调试配置。