php - docker mount 卷,但将文件保存在 docker 容器中
问题描述
我使用 Dockerfile 构建 php 的映像,但默认情况下,PHP 没有 php.ini 文件。所以我需要创建它。现在我有三种方法可以做到这一点:
在 Dockerfile 中使用 RUN 命令
RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
。但是这种方式仍然使用默认设置,我无法编辑它(或编辑它并提交容器)。在 Dockerfile 中使用 COPY 命令
COPY php.ini /usr/local/etc/php/php.ini
。好的,现在我可以编辑配置然后构建映像,但是如果我需要更改某些设置,我需要重建映像使用 volumn args,将其添加到 docker-compose.yml 中
- $PWD/php/conf.d:/usr/local/etc/php/conf.d/my_config
。通过这种方式,我可以随时编辑 php.ini 并重新加载配置文件。但是,我想知道的最好方法是- $PWD/php/conf.d:/usr/local/etc/php/conf.d
. 第一种方法会在 docker 容器中创建一个新的子文件夹,第二种方法会删除文件夹中原来的 *.ini 文件
我想知道这里有某种方式可以挂载卷而不删除容器中的文件(3的第二种方式但不删除文件)
解决方案
实际上这些文件不是deleted
来自子文件夹。卷安装在它上面。
您可以做的是,为您的文件分配一个单独的文件夹*.ini
,并从主php.ini
文件中引用它。因此,每次您重新加载 php 时,它都会php.ini
往返于那里,它会获取您的专用配置文件夹并*.ini
从那里加载所有文件。
推荐阅读
- c++ - 声明一个包含超过 500,000 个元素(大约)的数组会导致崩溃
- android - Android DialogFragment getDialog() 和 getView() 返回 null
- swift - SwiftUI Widget 背景基于传值的图像 url 或渐变背景
- c++ - NMAKE:致命错误 U1052:找不到文件“Makefile.vc”
- r - 从data.table r中的字符串中提取年份和星期
- c - 函数返回没有“return”语句的指针的值
- javascript - React Native 在 Fetch API 之后无法设置 AsyncStorage
- visual-studio-app-center - AppCenter Android Build - 自定义 shell 脚本 appcenter-post-clone 脚本失败,找不到命令
- wordpress - 如何更改 WooCommerce 结帐网址?
- r - 在 Shiny 的 UI 部分中的文本内添加了空格