Php docker装入卷,但将文件保存在docker容器中

Php docker装入卷,但将文件保存在docker容器中,php,docker,Php,Docker,我使用Dockerfile来构建php的映像,但默认情况下,php没有php.ini文件。所以我需要创造它。现在我有三种方法可以做到这一点: 在Dockerfile中使用RUN命令运行cp/usr/local/etc/php/php.ini-production/usr/local/etc/php/php.ini。但这种方式仍然使用默认设置,我不能编辑它(或者编辑它并提交容器) 在DockerfileCOPY php.ini/usr/local/etc/php/php.ini中使用COPY命令

我使用Dockerfile来构建php的映像,但默认情况下,php没有php.ini文件。所以我需要创造它。现在我有三种方法可以做到这一点:

  • 在Dockerfile
    中使用RUN命令运行cp/usr/local/etc/php/php.ini-production/usr/local/etc/php/php.ini
    。但这种方式仍然使用默认设置,我不能编辑它(或者编辑它并提交容器)

  • 在Dockerfile
    COPY php.ini/usr/local/etc/php/php.ini
    中使用COPY命令。好的,现在我可以编辑配置,然后构建映像,但是如果我需要更改一些设置,我需要重建映像

  • 使用volumn参数,将其添加到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文件


  • 我想知道这里是否有某种方法可以装载volumn,并且不删除容器中的文件(第二种方法是3,但不删除文件)

    实际上,文件并没有从子文件夹中删除。卷被安装在它上面


    您可以做的是,为
    *.ini
    文件分配一个单独的文件夹,并从主
    php.ini
    文件中引用它。因此,每次重新加载php时,它都会转到
    php.ini
    ,然后从那里获得您的专用配置文件夹,并从那里加载所有
    *.ini
    文件。

    您应该能够使用相同的卷装入语法来装入单个文件。@DavidMaze我忘记了这种方式,只装入一个文件。现在它起作用了。谢谢你的提醒