首页 > 解决方案 > 我应该将 docker-compose 创建的 /data 文件夹包含到 Git 中吗?

问题描述

我是 docker 和 docker compose 的新手。老实说,我一般都是编程新手。

目前我正在学习使用 Python (Django) 和 JavaScript 进行 Web 开发的课程。其中一个项目暗示我们应该尝试使用 docker。

我使用 docker-compose 来启动 Django 服务器并将它们连接到 Postgres 数据库。此配置复制自Django 中的 Docker 文档

version: "3.9"

services:
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/usr/src/app
    ports:
      - "8000:8000"
    depends_on:
      - db

这导致在根目录下创建了一个名为 /data 的文件夹。

  1. 我应该将此添加到存储库吗?

  2. 我什至应该将卷用于数据库吗?(课程教程中,数据库部分只包括:

     services:
        db:
          image: postgres
    

标签: djangopostgresqlgitdocker-compose

解决方案


如果您查看 postgres 的docker 文档,/var/lib/postgresql/data即使在 postgres 容器重新启动后,卷挂载也是为了保存 postgres 数据库数据。即,您可能已经完成的任何 DML/DDL 更改,即使在您的笔记本电脑重新启动时也会保留。

通常,由于可以通过运行迁移来恢复它,因此您需要将此 ( /data/db) 添加到.gitignore文件中。这也将确保您的任何共同开发人员在单击应用程序时可以自由地进行更改,并且不会与 postgres 可能写入此位置的任何二进制数据文件发生冲突。


推荐阅读