我正在尝试在Docker镜像中运行一个cron作业。当我使用此$( ".selectable" ).parent().parent().find('input').val('somevalue');
$( ".selected" ).each(function(index) {
$(this).on("click", function(){
This is multiple elements have their own function
//var somevalue = $(this).attr('id');
});
});
Dockerfile
然后它工作正常。如果我将FROM ubuntu:latest
# Install cron
RUN apt-get update
RUN apt-get install cron
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/simple-cron
# Add shell script and grant execution rights
ADD script.sh /script.sh
RUN chmod +x /script.sh
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/simple-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log
更改为
FROM
,然后我的cronjob停止工作。 FROM eventstore/eventstore
基于eventstore
,因此它似乎应继续有效。有没有人有任何想法?
答案 0 :(得分:1)
假设:您希望在运行eventstore时在后台运行cron。
要了解的事情: 在dockerfile中,“CMD”部分作为参数附加到“ENTRYPOINT”部分。例如
ENTRYPOINT ["echo","running entrypoint"]
CMD ["echo","runnning cmd"]
将导致以下输出
running entrypoint echo running cmd
您的问题说明: 在您的Dockerfile中,cron作为CMD执行,当您的父图像是ubuntu:latest时,它可以正常工作,因为它没有定义任何ENTRYPOINT。而eventstore / eventstore定义了ENTRYPOINT,导致执行以下
/entrypoint.sh cron && tail -f /var/log/cron.log
这也可能导致eventstore本身的意外行为,具体取决于entrypoint.sh的定义方式。充其量它会忽略任何争论。
<强>解决方案:强> 定义脚本“custom-entrypoint.sh”以运行cron,然后运行eventstore入口点脚本。
#!/bin/bash
cron && /entrypoint.sh
然后定义您的Dockerfile以添加custom-entrypoint.sh并将其运行为 入口点。最终的Dockerfile应该看起来像
FROM eventstore/eventstore
# Install cron
RUN apt-get update
RUN apt-get install cron
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/simple-cron
# Add shell script and grant execution rights
ADD script.sh /script.sh
RUN chmod +x /script.sh
# Add custom entrypoint shell script
ADD custom-entrypoint.sh /custom-entrypoint.sh
RUN chmod +x /custom-entrypoint.sh
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/simple-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
ENTRYPOINT ["/custom-entrypoint.sh"]