【问题标题】:Continuously develop and deploy a Django app with Visual Studio Code and Docker使用 Visual Studio Code 和 Docker 持续开发和部署 Django 应用
【发布时间】:2021-02-07 07:30:08
【问题描述】:

我正在使用 Visual Studio Code 在本地开发一个 Django 应用程序。在准备部署时,我将所有东西都“dockerized”了,现在我已经能够在本地运行这个容器了。

在我尝试在其他地方构建我的 Docker 映像之前(我想到的是 Google Cloud Run),我想确保我仍然可以调试我的代码。

使用the official 'Python in a container' tutorial,当我的应用在本地使用 Docker 运行时,我可以设置断点等。

所以我认为工作流程将如下所示:

  1. 我在本地开发我的应用程序并在 Visual Studio Code 中对其进行调试。
  2. 为了进一步调试,我可以使用 Docker 在本地执行此操作,如上所述。
  3. 当一切正常时,我将此容器推送到 Google Cloud Run 或其他任何地方。

这听起来像是一个合理的计划还是我错过了一些重要的事情?最后,我正在寻找一种简单便捷的方法来使用 Visual Studio Code 持续开发(和调试)Django 应用程序并使用 Docker 进行部署。

【问题讨论】:

    标签: django docker visual-studio-code google-cloud-run


    【解决方案1】:

    我从未使用过 Google Cloud Run 或 smth,但根据远程服务器的经验,我可以建议以下方法。您可以使用github actionsdocker hub。用测试覆盖你的应用程序或至少是它的关键部分,这将确保所有重要的东西都能正常工作。您可以将 github 操作设置为每次推送到 github 存储库时运行测试的方式。如果测试将通过您的应用程序的图像(通常它的名称是 your_app:latest)将在 dockerhub 上更新,允许您从图像构建。拥有多个图像是一个好习惯。例如,您可以有一个稳定版本,比如v.1.0 和一个测试版your_app:latest。因此,您将能够在生产服务器上运行稳定版,而测试版可以在开发服务器上运行。不要更新稳定版本,发布新版本并保留现有版本。

    github 操作文件的外观示例:

    name: your_app_workflow
    
    on: [push]
    
    jobs:
      tests:
    
      # run your tests here
    
      push_to_docker_hub:
        name: Push Docker image to Docker Hub
        runs-on: ubuntu-latest
        needs: tests
        steps:
          - name: Check out the repo
            uses: actions/checkout@v2
    
          - name: Push to Docker Hub
            uses: docker/build-push-action@v1
            with:
              username: ${{ secrets.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKER_PASSWORD }}
              repository: your_repository_on_dockerhub
              tag_with_ref: true
    

    也许你知道跟随,但我还是会提到它。 Django 内置的数据库是 SQLite,根本不可靠,因此如果您要让其他人使用您的产品,您必须考虑另一个数据库。当前网络行业的标准是 PostgreSQL。有Mongo、Redis等,但PostgreSQL用得最多。此外,Django 在生产中不提供静态和媒体文件,因此您必须使用代理服务器,例如 Nginx。 Nginx 不能直接与你的 Django 应用程序一起工作,因此你需要一个中介,比如 Gunicorn。同样,我不了解 Google Cloud Run,但在典型的远程服务器上,您会这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2022-06-29
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多