docker - 滚动更新共享文件夹/文件 Docker
问题描述
我正在寻找一种在 Docker 容器之间共享文件/文件夹的方法。尤其是共享文件会给我带来问题。我想通过 docker-compose 在生产中使用 Docker,并使用一种可以让我零停机时间的部署技术(比如绿色/蓝色或其他东西)。
到目前为止,我所做的是通过首先检查 git 源来部署新的源代码。我保持旧容器运行,直到新容器启动。然后我停止旧的并将其删除。
我在使用共享文件时遇到的问题是 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)
我试过了:
- 符号链接;不幸的是 Docker 不支持符号链接
- 在卷部分下的 docker-compose 文件中安装共享文件/文件夹,但由于 Docker 不锁定文件,这会导致数据损坏
如果我需要让自己更清楚或需要提供更多信息,我很乐意。让我知道。
解决方案
推荐阅读
- mysql - MY SQL 查询中的 STR_TO_DATE 为 Null
- python - 以破折号将值从一页传递到另一页
- azure-sql-database - 如何将 'db_datareader' 权限更改为 'public' 以在 azure sql server 中登录?
- iframe - Sharepoint 2013 页面查看器 Web 部件 iframe 页面内的链接不起作用
- spring-boot - 用于弹簧靴 2 的 BPMN
- android - 有没有办法捕获 onUserInteraction() 触发的事件
- c++ - string_view 的基于字符类型的模板
- json - 如何在 unix 的 json 文件中添加换行符
- regex - 关于使用正则表达式的问题
- java - Spring Data JPA:当null出现在排序列中时,结果中的行丢失