如何 运行 cronjobs 和 rackup
How to run cronjobs and rackup
我的问题是 运行 ruby sinatra 的 cron 和 rackup 服务在 docker。
文件 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 只有一项服务可用时
Docker 容器是 运行ning 而它里面的主进程是 运行ning。因此,如果您想 运行 在 docker 容器中使用两项服务,其中一项必须 运行 处于后台模式。
所以,CMD
层应该是这样的:
CMD ( crond -f & ) && rackup --host 0.0.0.0 -p 80
我的问题是 运行 ruby sinatra 的 cron 和 rackup 服务在 docker。
文件 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 只有一项服务可用时
Docker 容器是 运行ning 而它里面的主进程是 运行ning。因此,如果您想 运行 在 docker 容器中使用两项服务,其中一项必须 运行 处于后台模式。
所以,CMD
层应该是这样的:
CMD ( crond -f & ) && rackup --host 0.0.0.0 -p 80