如何与其他团队成员共享 docker 容器容量
how to share docker container volume with other team members
我有一个带有 postgres 的容器(用于开发目的),在那个容器上我对数据库进行了一些手动更改,我希望与其他团队成员共享这些更改,
以下 yml 文件已提交给 git,我希望自己提交卷,以便所有其他团队成员可以使用我手动添加的数据组成容器。所以每个团队成员都会用我预先创建的数据组成容器。
是否有一种干净的方式与其他团队成员共享音量??
我们都使用 macOS
理想情况下,我想将卷提交给 git 并定义一个固定的卷文件,但不确定该怎么做。
version: "3.7"
services:
postgres-server:
image: postgres:13
restart: always
env_file:
- .env.dev
environment:
PGDATA: /var/lib/postgresql/data
volumes:
- postgres-server:/var/lib/postgres-server/data
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4:6.5
restart: always
env_file:
- .env.dev
environment:
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin:/var/lib/pgadmin
volumes:
postgres-server:
pgadmin:
卷的工作原理并非如此。它们并不意味着 git 中的 source-controlled。您可以进行数据库转储和源代码管理。
例如,您可以使用 pgdump,但也有其他工具可以做到这一点。
pg_dump --schema-only mydb > db.sql
然后您可以配置您的撰写文件以在启动时装载此转储文件。如果没有包含数据的卷,Postgres 将使用转储来设置数据库。
services:
postgres-server:
volumes:
- ./db.sql:/docker-entrypoint-initdb.d/db.sql
- postgres-server:/var/lib/postgres-server/data
但请注意,此转储文件中没有机密数据。这就是为什么在上面的示例中,我只转储了架构。因此,没有实际数据是受源控制的。数据本身也不适合 git。
您可以使用tar来备份卷内容。然后,您可以从那个 tar 存档中创建一个新容器。
如果你想这样做,看看
它 tars/untars 数据,但是您可能希望中间有一个步骤与您的团队成员分享 tar 球。
我有一个带有 postgres 的容器(用于开发目的),在那个容器上我对数据库进行了一些手动更改,我希望与其他团队成员共享这些更改,
以下 yml 文件已提交给 git,我希望自己提交卷,以便所有其他团队成员可以使用我手动添加的数据组成容器。所以每个团队成员都会用我预先创建的数据组成容器。
是否有一种干净的方式与其他团队成员共享音量?? 我们都使用 macOS
理想情况下,我想将卷提交给 git 并定义一个固定的卷文件,但不确定该怎么做。
version: "3.7"
services:
postgres-server:
image: postgres:13
restart: always
env_file:
- .env.dev
environment:
PGDATA: /var/lib/postgresql/data
volumes:
- postgres-server:/var/lib/postgres-server/data
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4:6.5
restart: always
env_file:
- .env.dev
environment:
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- pgadmin:/var/lib/pgadmin
volumes:
postgres-server:
pgadmin:
卷的工作原理并非如此。它们并不意味着 git 中的 source-controlled。您可以进行数据库转储和源代码管理。
例如,您可以使用 pgdump,但也有其他工具可以做到这一点。
pg_dump --schema-only mydb > db.sql
然后您可以配置您的撰写文件以在启动时装载此转储文件。如果没有包含数据的卷,Postgres 将使用转储来设置数据库。
services:
postgres-server:
volumes:
- ./db.sql:/docker-entrypoint-initdb.d/db.sql
- postgres-server:/var/lib/postgres-server/data
但请注意,此转储文件中没有机密数据。这就是为什么在上面的示例中,我只转储了架构。因此,没有实际数据是受源控制的。数据本身也不适合 git。
您可以使用tar来备份卷内容。然后,您可以从那个 tar 存档中创建一个新容器。
如果你想这样做,看看