使用共享文件夹/文件Docker滚动更新

时间:2019-12-24 08:37:28

标签: docker docker-swarm production-environment volumes mounted-volumes

我正在寻找一种在Docker容器之间共享文件/文件夹的方法。特别是共享文件给我带来了问题。我想在docker-compose的生产环境中使用Docker,并使用一种使我的停机时间为零的部署技术(例如绿色/蓝色或其他东西)。

到目前为止,我要通过首先签出git source来部署新的源代码。我保持旧容器运行,直到新容器启动为止。然后我停止旧的并将其删除。

我遇到的共享文件问题是Docker不锁定文件。因此,当两个具有相同应用程序的容器启动并写入相同的文件shared_database.db时,这将导致数据损坏。

从根目录开始的文件夹结构如下:

/packages (git source)
/www (git source)
/shared_database.db (file I want to share across different deployments)
/www/public/files (folder i want to share across different deployments)

我尝试过:

  1. 符号链接;不幸的是,Docker不支持符号链接
  2. 将共享文件/文件夹安装在docker-compose文件中的“ volumes”部分下,但是由于Docker不锁定文件,因此会导致数据损坏

如果我想让自己更清楚或者需要提供更多信息,我将很高兴。让我知道。

0 个答案:

没有答案