每当我开始运行docker镜像时,我想运行一个bash文件,但是几个小时之后我也无法知道如何执行此操作。我的bash文件看起来像,
#!/bin/bash
while true;
do
echo "hello world"
sleep 10
done
所以我正在考虑的是,当我开始运行docker时,bash文件也将在docker镜像中连续运行,在这种情况下,只要docker打开,bash文件就会完成它的工作。
如何设置?我应该在docker镜像中构建这个吗?或者我可以将bash文件放在run.sh中,以便在docker运行时发生?
答案 0 :(得分:1)
你的Dockerfile需要看看这个
FROM <base_image>
ADD yourfile.sh /
CMD ['/yourfile.sh']
答案 1 :(得分:1)
只需在docker文件中使用COPY或ADD复制脚本文件,然后使用CMD命令运行它。
例如,如果你将run.sh复制到/ 然后在你的dockerfile最后一行添加:
CMD run.sh
有关详细信息,请参阅:https://docs.docker.com/engine/reference/builder/并搜索“CMD”
确保该文件具有正确的运行权限(否则,在COPY / ADD文件生成后RUN chmod +x run.sh
要点:
//Dockerfile
// source image, for example node.js
FROM some_image
// copy run.sh script from your local file system into the image (to root dir)
ADD run.sh /
// add execute privillages to the script file (just in case it doesn't have)
RUN chmod +x run.sh
// default behaviour when containter will start
CMD run.sh
希望有所帮助。