如何在启动运行docker镜像时设置运行bash文件

时间:2016-08-26 17:35:09

标签: docker dockerfile

每当我开始运行docker镜像时,我想运行一个bash文件,但是几个小时之后我也无法知道如何执行此操作。我的bash文件看起来像,

#!/bin/bash
while true;
do
   echo "hello world"
   sleep 10
done

所以我正在考虑的是,当我开始运行docker时,bash文件也将在docker镜像中连续运行,在这种情况下,只要docker打开,bash文件就会完成它的工作。

如何设置?我应该在docker镜像中构建这个吗?或者我可以将bash文件放在run.sh中,以便在docker运行时发生?

2 个答案:

答案 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
希望有所帮助。

相关问题