为了确保每个开发人员都使用相同的受控开发环境,越来越多的团队使用 docker。这样,每个开发人员都将在相同的环境中工作,而不管他们的操作系统如何。使用 docker 作为开发环境还可以减少新开发人员准备编码所需的时间。 Pycharm 是世界上最常用的 Python IDE 之一,并实现了 docker 作为开发环境。今天我们将了解如何在我们的新 IDE 中配置项目。

环境

在开始配置之前,您需要在计算机上安装一些依赖项:

  • PyCharm 可供下载在这里

  • Docker 桌面可用这里

  • 一个使用 PostgreSQL 的 Django 项目。您可以使用我们在教程中创建的项目“First steps with Django”

设置解释器 docker

我们现在希望有一个用于 PostgreSQL 的 docker,另一个用于 python 解释器的 docker,我们还希望数据库中的数据是持久的,最后可以访问代码来编辑它。我们将从克隆应用程序开始,并为我们的 python docker 创建一个 dockerfile。如果你不知道我在说什么,你可以看看教程“Deploying an application Django with PostgreSQL and Docker。

git clone https://gitlab.com/code-with-oreo/django-part-3.git .

然后创建一个名为 Dockerfile 的文件:

FROM python:3.8.3-alpine

WORKDIR /app

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev
RUN pip install --upgrade pip
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

我想你理解这个文件,正如我们在关于部署的教程中解释的那样。这个 Dockerfile 将创建将运行我们的 python 解释器的 docker。对于 PostgreSQL,我们不需要 Dockerfile,官方镜像就足够了。

设置 docker compose 文件

由于我们将有两个 docker 一起运行,我们需要 docker-compose 来管理它们。在项目的根目录下,创建一个文件 docker-compose.yml:

version: '3'
services:
  web:
    build: .
    container_name: MyWebApp
    ports:
      - "8000:8000"
    volumes:
      - ./:/app
    links:
      - db

  db:
    image: "postgres:latest"
    container_name: MyDb
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: yourpassword

volumes:
  db-data:

与 Dockerfile 相同,您可能了解此文件。该对象不是关于 dockerizing 应用程序,而是如何配置 Pycharm。

我们还将对我们的设置文件(my_blog/settings.py)进行一些修改:

[...]
ALLOWED_HOSTS = ['*'] #to allow access in local
[...]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',  
        'USER': 'postgres', 
        'PASSWORD': 'yourpassword', 
        'HOST': 'db',
        'PORT': '5432'
    }
}
[...]

现在一切都准备好了,但是如果你运行你的 docker compose 你将会有一个错误,因为数据库是空的。我们可以在终端中解决这个问题,但让我们配置 Pycharm 并通过 IDE 来完成。

在Pycharm中配置一个新的解释器

我们将配置 Pycharm 以使用我们的 docker 作为 python 解释器。为此,打开设置(在 Windows 上为 File > Settings,在 Mac OS 上为 PyCharm > preferences)并打开项目中的 python 解释器部分。

截图 2021-03-28 at 16.00.01.png

点击右边的三个点然后_add_

截图 2021-03-28 at 16.01.05.png

在新窗口中,选择 docker-compose,然后选择您的 docker-compose.yml 文件作为配置文件,然后在服务中选择 web:

截图 2021-03-28 at 16.02.15.png

单击 ok 并继续设置,转到 Languages & Frameworks > Django。您可以在此处启用 Django 支持:

截图 2021-03-28 at 16.06.14.png

您现在可以应用设置并返回到您的 IDE 主窗口。

添加配置

现在解释器已经准备好了,我们必须告诉 Pycharm 在这个项目中使用这个解释器。在 IDE 的顶部栏中,您应该会看到一个 Add configuration 按钮:

截图 2021-03-28 at 16.08.16.png

点击它,然后在蓝色的“+”号上选择 Django Server,最后填写所需的信息并选择我们之前创建的解释器作为项目解释器:

截图 2021-03-28 at 16.19.32.png

然后点击_ok_,配置就完成了。如果您单击_Run_,您的泊坞窗将被自动挂载并且您的应用程序可以访问。

通过 Pycharm 运行manage.py命令

为托管在 docker 中的应用程序运行manage.py命令非常繁重,您每次都需要运行

docker-compose exec YourServiceWeb python3 manage.py YourCommand

值得庆幸的是,Pycharm 会让它变得更容易。在菜单 Tools 中,您现在有一个 Runmanage.pyTask 选项。这将在 IDE 底部打开一个新选项卡,您可以在其中直接执行命令。在我们的例子中,我们想要迁移我们的迁移,所以只需键入migrate,奇迹就会发生。

我希望你喜欢这篇文章,它可以帮助你配置你的项目。如果您有任何问题,请随时发表评论。

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐