为了在启动时启动selenium服务器,
我必须将entry_point.sh
置于/opt/bin
但如果我取消注释cron命令CMD cron && tail -f /var/log/cron.log
服务器不再运行了。
我无法弄清楚为什么会被打破
SHELL=/usr/bin/zsh
* * * * * echo $PATH >> /root//reboot_record.txt >> /tmp/cron_debug_log.log 2>&1
* * * * * cd /home/poc/lazy-bird/j && ruby j.rb >> /tmp/cron_debug_log.log 2>&1
* * * * * echo $PATH >> /root//reboot_record.txt >> /tmp/cron_debug_log.log 2>&1
* * * * * cd /home/poc/lazy-bird/p && ruby p.rb >> /tmp/cron_debug_log.log 2>&1
#====================================
# Scripts to run cron job
#====================================
# Add crontab file in the cron directory
ADD cron_lazy_bird /etc/crontab
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Use the crontab file
RUN crontab /etc/crontab
# Run the command on container startup
#CMD cron && tail -f /var/log/cron.log
#====================================
# Scripts to run Selenium Standalone
#====================================
COPY entry_point.sh /opt/bin/entry_point.sh
RUN chmod +x /opt/bin/entry_point.sh
USER seluser
EXPOSE 4444
USER root
CMD ["/bin/bash", "/opt/bin/entry_point.sh"]
cron && tail -f /var/log/cron.log
export GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH"
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" \
java -jar /opt/selenium/selenium-server-standalone.jar \
-role node \
-hub http://$HUB_1_PORT_4444_TCP_ADDR:$HUB_1_PORT_4444_TCP_PORT/grid/register \
-browser browserName=firefox
答案 0 :(得分:0)
您的入口点脚本需要从ENTRYPOINT
或CMD
指令调用,否则在启动容器时不会运行。
在启动应用程序之前,您需要删除CMD
并从入口点脚本启动cron。您可能希望使用流程管理器(如runit或supervisord)来处理此问题(请参阅https://docs.docker.com/articles/using_supervisord/)。