Docker 运行 主机中的脚本 docker-撰写

Docker run script in host on docker-compose up

我的问题是关于如何 运行 在 docker-compose up 指令上编写脚本的最佳实践。

目前我正在主机和容器之间共享一个卷,以允许主机和容器都可以看到脚本更改。 类似于监视脚本轮询配置文件的更改。脚本必须根据预定义的规则对主机进行更改。

我如何在 docker-compose up 指令或什至从服务的 Dockerfile 中启动此脚本,以便每当容器启动时,“观察者”都可以找到正在进行的任何更改并写入到.

有问题的容器将始终 运行 在 Debian / Ubuntu OS 上并且应该独立于体系结构,这意味着它应该能够 运行 在 ARM 上嗯

我希望 运行 主机上的脚本,而不是容器内的脚本。我需要主机更改其网络接口配置以轻松适应任何环境 HOST 需要更改我重复一遍。这对用户来说应该是无缝的,并且可以在 Web 界面上轻松编辑 运行装在容器中以适应新环境。

我目前使用基于 crontab 的主机上的脚本 运行ning 来执行此操作。我只是想知道如何从容器内部 运行 HOST 上的脚本的最佳实践和示例,这样部署就可以像安装操作员一样简单 运行 docker-整理.

脚本需要在前台持续运行。

在您的 Dockerfile 中使用 CMD 指令并将脚本定义为参数。

使用cli时,使用docker run -d IMAGE SCRIPT

您可以为 docker-compose up 创建别名。在 ~/.bash_aliases(在 Ubuntu 中)放这样的东西:

alias up="docker-compose up; ~/your_script.sh"

我不确定 运行 主机上的脚本是否可能来自容器,但如果可能的话,这是一个严重的安全漏洞。容器应该是隔离的,这就是使用容器的意义。

I just wish to know the best practices and examples of how to run a script on HOST from INSIDE a CONTAINER, so that the deploy can be as easy for the installing operator to just run docker-compose up

似乎没有可以应用于您的案例的最佳实践。此处提出的解决方法: 是使用 client/server 技巧。

  1. 主机应该运行一个小型服务器(选择一个端口并指定您应该等待的请求类型)
  2. 容器启动后,应将此请求发送到该服务器
  3. 然后主持人应该运行脚本/触发您想要的更改

这可能存在严重的安全问题,因此使用风险自负。