如何与其他团队成员共享docker容器容量



我有一个带有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中受源代码控制。你可以做一个数据库转储和源代码管理。

例如,您可以使用pgdump,但也有其他工具可以做到这一点。

pg_dump --schema-only mydb > db.sql

然后,您可以将撰写文件配置为在启动时装载此转储文件。如果没有包含数据的卷,Postgres将使用转储来设置DB。

services:
postgres-server:
volumes:
- ./db.sql:/docker-entrypoint-initdb.d/db.sql
- postgres-server:/var/lib/postgres-server/data

但是请注意,此转储文件中没有机密数据。这就是为什么在上面的例子中,我只转储了模式。因此,没有任何实际数据是源代码控制的。数据本身也不适用于git。

您可以使用tar来备份卷内容。从这个tar档案中,您可以创建一个新的容器。

如果您想这样做,请查看https://stackoverflow.com/a/68230268/4222206它会标记/取消标记数据,但您可能希望在这中间有一步与您的团队成员共享焦油球。

最新更新