我试图使用upStart(Run php script as daemon process)来学习这个教程,但是当我收到错误'startserver: unrecognized service'
以下是一些显示我尝试过的图片
控制台底部是错误所在的位置。我还证明我的文件在/ etc / init中,它应该在docker容器中。我使用docker exec -it draftandpermit_web_1 bash
我错过了什么吗?
其他参考数据:
startserver.conf
# Info
description "Start Server"
author "Joseph Astrahan"
# Events
start on startup
stop on shutdown
# Automatically respawn
respawn
respawn limit 20 5
# Run the script!
# Note, in this example, if your PHP script returns
# the string "ERROR", the daemon will stop itself.
script
[ $(exec /usr/bin/php -f /var/www/callcenter/livesite/bin/startwebsocketserver.php) = 'ERROR' ] && ( stop; exit 1; )
end script
我在图片中看到或使用我的便利脚本
手动激活它echo "Copying startserver.conf to /etc/init"
docker exec -it draftandpermit_web_1 bash -c "cd /app/docker; cp -f startserver.conf /etc/init/"
echo "Stopping & Starting the WebSocket & HTTP Server"
docker exec -it draftandpermit_web_1 bash -c "service startserver stop"
docker exec -it draftandpermit_web_1 bash -c "service startserver start"
请记住路径对于文件的位置是正确的,因为我手动进入容器以查看/ etc / init,如图所示。
答案 0 :(得分:1)
Docker既不是一个初始化系统,也不会在没有一些黑客的情况下运行传统的初始化系统。您在Docker容器中运行的第一个进程将是PID 1.这可能是一个主管(如supervisord,s6,dumb-init)。
但是,更一般地说,您可以运行所需的进程并使用docker run
命令的选项处理在前台或后台运行。在此示例中,您的Docker命令(或CMD
中的Dockerfile
)可以只是php -f /var/www/callcenter/livesite/bin/startwebsocketserver.php
。然后,使用-d
选项运行容器,它将在后台运行。您可以使用docker attach
附加到docker logs
或仅使用* {margin: 0; padding: 0; }
body {
background-image: url(http://wallpaperpulse.com/img/460475.jpg);
background-repeat: no-repeat;
background-position: right top;
margin-right: 200px;
background-attachment: fixed;
}
.pagina {
position: relative; margin-top: 30px; padding-top: 30px; font-family: Helvetica, Arial, sans-serif;
}
.form1 {
float: left; padding: 50px;
}
.form2 {
float: right; padding: 50px;
}
.uitleg {
font-size: 20px;
}
.border {
margin-top: 0px; margin-right: 5%; margin-bottom: auto;
margin-left: 5%; width: auto; font-size: 16px; line-height: 22px; background: #ffffe6; padding-top: 20px; border-radius: 25px;
padding-left: 20px; padding-right: 20px; padding-bottom: 20px; border: 4px solid black;
}
.submit {background-color: #333399; border: 1px solid black; padding: 4px; font-size: 15px; font-weight: bold; border-radius: 5px;
color: #ffffff;
}
.submit:hover {
color: #ffffff; background-color: #000000;
}
.uitleg {
margin-bottom: 100px; font-size: 20px;
}
观看输出。
如果您确实需要使用某种进程管理程序(例如,当您需要在容器中运行多个进程时),那么我将开始寻找Docker init选项。我提到了一对,还有更多。 Upstart不能在容器内工作。