Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker容器内自动配置配置_Docker_Docker Compose_Dockerfile - Fatal编程技术网

在Docker容器内自动配置配置

在Docker容器内自动配置配置,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,在设置和配置一些docker容器时,我问自己如何在容器化服务完成安装后自动编辑容器内的一些配置文件,因为配置文件是在安装时创建的 我尝试过使用shell文件并将其添加为Dockerfile中的入口点。但是,正如我所说,配置文件在开始时不存在,因此脚本中的sed命令失败 将配置文件链接到-./myConfig.conf:/xy/myConfig.conf也不是一个选项,因为该配置包含一些依赖于安装的选项 我遇到的最合理的解决方案是运行一个脚本,在安装完成docker exec-I mycontai

在设置和配置一些docker容器时,我问自己如何在容器化服务完成安装后自动编辑容器内的一些配置文件,因为配置文件是在安装时创建的

我尝试过使用shell文件并将其添加为Dockerfile中的入口点。但是,正如我所说,配置文件在开始时不存在,因此脚本中的sed命令失败

将配置文件链接到-./myConfig.conf:/xy/myConfig.conf也不是一个选项,因为该配置包含一些依赖于安装的选项

我遇到的最合理的解决方案是运行一个脚本,在安装完成docker exec-I mycontainer sh 编辑


我的问题是笼统地提出来的。但是,在类似于的docker compose设置中使用时出现了这个问题。该容器包含一个config.php文件,该文件是Nextcloud的常规配置文件,在安装过程中生成。必须更改该文件的某些属性—指定的环境变量数量非常有限。因为我正在使用这个容器进行一些测试,所以我必须反复重新安装它,从而重新编辑配置文件

也许您可以尝试另一种方法,让您的配置文件/应用程序从环境变量中选择其设置。这与12factor应用程序方法一致,我是如何理解您的案例的,您需要从创建模板配置开始创建容器的

我看到了许多这样做的选项:

使用一些脚本,从模板生成配置,从命令行或环境变量生成参数。例如或。在本例中,您的入口点将生成模板,然后启动应用程序。对于更改配置,将强制重新启动服务容器

运行某些服务可以保存配置并在运行时呈现配置。就我个人而言,我喜欢在我们的环境中主动使用这个引擎,暂时没有问题。在这种情况下,配置更具动态性,可以动态更改。在您的容器中,您将有两个进程:应用程序和领事模板守护进程。显然,您需要运行和维护领事。对于重新加载配置,重新启动应用程序进程就足够了

运行自定义脚本以创建配置:


你能多分享一些你的设置吗,也许是Dockerfile?通常,您会在Dockerfile中安装软件,ENTRYPOINT脚本将在稍后运行;同样,同一图像上不同容器之间的安装选项也不会有任何变化。@DavidMaze谢谢,我已经编辑了我的问题并描述了我的具体问题。我不完全理解您的需要。例如,您在云服务ECS中运行单个容器,或者您有自己的VM。如果你能更广泛地解释你的需求,我肯定会提出一个解决方案…@ozlevka我很抱歉没有表达得足够清楚。我在本地有一台运行Linux和docker的专用服务器。我在专用容器中运行多个docker服务,如webserver、revereproxy等。通过这种方式,我还运行Nextcloud容器,它依赖于一个db和一个webserver。它们与docker compose文件相结合。当我重新安装这些服务时,我必须手动编辑位于Nextcloud容器中的config.php文件。我正在寻找一种在成功安装服务后自动进行这些更改的方法。下面描述的环境变量是否足够?哪些附加设置不由这些用户处理?