【发布时间】:2025-12-05 17:40:01
【问题描述】:
在成功关注这些RHEL systemd container instructions 之后,我现在希望容器在每次启动时运行一个 bash 脚本。不过,我希望它只运行一次。对我来说,这似乎不是一种“服务”。我不想启动容器,然后手动运行 bash 脚本(例如 docker exec -it ...)。我应该制作一个 systemd 单元文件来启动脚本,然后在我的 bash 脚本中禁用该服务吗?这看起来有点像黑客,不是吗?
更新:要回答评论者,bash 脚本需要 systemd。所以首先 systemd 必须启动,然后脚本运行,安装软件,然后发出 systemctl start 命令。是的,我知道你在想什么:使用 RUN 安装软件,然后让 systemd 启动它,但不幸的是,我不能为这个项目这样做。我没有编写的脚本期望 systemd 正在运行。此外,该脚本确实在容器内的命名卷中运行。
【问题讨论】:
-
每个容器启动一次?
-
从您对
docker exec的引用来看,这个脚本在容器内吗? -
您有什么理由不简单地修改容器以在启动时执行该脚本?