我想使用现有的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"、"./mtproto_stats"]
此命令"/bin/sh", "-c", "/bin/bash /run.sh"
是我在运行容器上使用的docker inspect
我的程序应始终与容器一起运行并一直工作,我正在尝试使用"./mtproto_stats & disown"
,但无济于事
答案 0 :(得分:0)
此命令
"/bin/sh", "-c", "/bin/bash /run.sh"
是我在运行的容器上使用docker inspect
"/bin/sh", "-c"
是默认的ENTRYPOINT
,"/bin/bash /run.sh"
是CMD
。
对于您来说,应该使用CMD的外壳形式:
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
放在最后,因为它应该是使容器保持活动状态的主要过程。