我希望使用现有的docker映像,并在cmd中添加新命令而不执行命令。
Dockerfile
FROM telegrammessenger/proxy
COPY mtproto_stats .
CMD [ "/bin/sh", "-c", "/bin/bash /run.sh", "/bin/bash ./mtproto_stats" ]在这里,我尝试执行我复制到容器CMD "/bin/sh“、"-c”、"/bin/bash /run.sh“和-c的程序。
这是我在运行容器时使用"/bin/sh", "-c", "/bin/bash /run.sh"获得的docker inspect命令
我的程序应该与容器一起运行,并且一直工作,我正在尝试使用"./mtproto_stats & disown",但它没有帮助
发布于 2018-07-01 02:24:56
这是命令
"/bin/sh", "-c", "/bin/bash /run.sh",我在运行容器时使用了码头检查
"/bin/sh", "-c"是默认的ENTRYPOINT,"/bin/bash /run.sh"是CMD。
在您的例子中,您应该使用CMD的shell形式:
FROM telegrammessenger/proxy
COPY mtproto_stats .
COPY wrapper.sh /wrapper.sh
CMD exec /wrapper.sh使用wrapper.sh:
#!/bin/bash
exec /path/to/mtproto_stats & disown
exec /run.sh我将run.sh放在末尾,因为它应该是保持容器存活的主要进程。
https://stackoverflow.com/questions/51115072
复制相似问题