在一台机器上使用 docker-compose 与多个实际用户一起为单个项目

在一台机器上使用 docker-compose 与多个实际用户一起为单个项目

我和一个朋友开始一起开展一个项目,我们想尝试为它使用单一远程开发环境。

我在 Oracle 的云基础设施上创建了一个虚拟机,并为我的朋友创建了一个用户。

我们在 github 上有一个用于该项目的单一存储库。

该项目使用 docker-compose 作为 traefik 代理、mariadb 数据库和 django 项目。

我们每个人都将 repo 克隆到虚拟机上的主文件夹中,并且每个人都有自己的 docker-compose 文件(完全重复,之间没有任何区别)

我们使用 VSCode 的 Remote-SSH 扩展远程进入机器并在 vscode 中将我们的工作目录作为工作区打开。

例如,我们同时工作,但目前没有通过 discord 呼叫或其他方法进行通信。我运行docker-compose up -d进行一些测试和错误检查,端口被绑定,然后他docker-compose up -d出于同样的原因尝试运行,但端口已经绑定并且他的容器终止。因此,在我运行之前docker-compose down,他将无法测试他的工作分支。

我认为我们可以为本地存储库建立一个共享文件夹,但我注意到我对文件系统所做的任何修改都会实时反映在他的编辑器中,并且意识到切换分支可能会导致重大数据丢失,这就是我们选择单独工作目录的原因。

我们可以使用不同的机器,但这需要单独的域进行访问,并且需要不同配置的 docker-compose.yml 文件,由于它位于 github 存储库中,因此必须不断进行编辑。

我曾考虑过一个专用目录,其中“开发”分支已检出并通过 ci/cd 使用拉取请求进行更新,但如果不合并 PR 并在出现问题时还原更改,则无法进行快速测试。

我们使用远程机器是因为我们实际的计算机没有大量的处理能力,而虚拟机为我们提供了 4 个 CPU 和 24GB 内存,这已经足够了。

有没有一种切实可行的方法,让我们能够在同一台机器上处理同一个项目,并且进行测试,而不会与彼此的“运行”docker-compose up -d或工作目录发生冲突?关于如何实现这一点,有什么建议或更好的替代方案吗?

相关内容