Answer the question
In order to leave comments, you need to log in
How to automatically start services on container startup in docker?
There is an autorun task inside the redis container and a few more commands, decorated in a bash script. These commands are dynamic. This is how the contents of the bash file are formed from under php
$queue = <<<QUEUE
#!/bin/bash
eval \"QUEUE='{$params['hostname']}_1' COUNT=1 php /root/tracker/resque >> /var/log/resque_worker.log 2>&1 &\"
eval \"QUEUE='{$params['hostname']}_2' COUNT=1 php /root/tracker/resque >> /var/log/resque_worker.log 2>&1 &\"
eval \"QUEUE='{$params['hostname']}_3' COUNT=1 php /root/tracker/resque >> /var/log/resque_worker.log 2>&1 &\"
eval \"php /root/start-workers.php\"
QUEUE;
Answer the question
In order to leave comments, you need to log in
Не вижу в командах ничего динамического кроме нескольких аргументов - eval тут совершенно не нужен.
ПО поводу ошибок - смотрите docker logs container_name
, там будет писать если что вывалилось в stderr.
CMD - это в Dockerfile. А как эту задачу решить при run контейнера? Например, пишу docker run -td --restart=always --net=host -p 6379 -e SERVER_IP=xx.xx.xx.xx --name name image-name /etc/init.d/redis-server start
Если верить документации docker run [OPTIONS] IMAGE [COMMAND] [ARG...] после IMAGE стоит COMMAND, на его место ставлю /etc/init.d/redis-server start, но тогда у контейнера постоянно статус restarting
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question