如何运行cronjobs和机架

时间:2019-02-07 18:30:44

标签: ruby docker sinatra alpine

我的问题是在docker中为ruby sinatra运行cron和rackup服务时。

文件cronjobs * * * * * cd /app && rake parser >> cron.log 2>&1

文件Dockerfile


RUN apk update && apk upgrade
RUN apk add --update build-base \ 
mariadb-dev bash dcron

RUN gem install bundler 

WORKDIR /app
COPY Gemfile .
RUN bundle install && bundle clean
COPY .  /app
COPY cronjobs /etc/crontabs/root

EXPOSE 80

CMD crond -f && rackup --host 0.0.0.0 -p 80

运行docker时只有一项服务可用

1 个答案:

答案 0 :(得分:1)

Docker容器正在运行,而其中的主进程正在运行。因此,如果您想在docker容器中运行两个服务,则其中之一必须在后台模式下运行。

因此,CMD层应为以下内容:

CMD ( crond -f & ) && rackup --host 0.0.0.0 -p 80