Я пытаюсь использовать cron как пользователь без полномочий root в контейнере Docker.В контейнере уже есть приложение rails пользователем без полномочий root, и я хочу выполнять задачи cron от имени того же пользователя, одновременно запуская сервер rails.Однако, когда я запускаю docker-compose up -d
, я получаю сообщение об ошибке: cron: невозможно открыть или создать /var/run/crond.pid: В доступе отказано
Так что мой вопрос:любой способ выполнить задачу cron от имени пользователя без полномочий root в контейнере с приложением rails. Просто чтобы вы знали, я пытался не использовать учетную запись root по соображениям безопасности.Заранее спасибо!
Вот мой докер файл беду ...
FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
nodejs \
cron \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
ENV \
USER=new_user \
GROUP=new_user \
APP_ROOT=/var/www/new_user \
HOME=/home/new_user \
RAILS_PATH=./apps/server/new_user
RUN groupadd $GROUP && \
useradd -g $GROUP $USER
RUN mkdir -p $APP_ROOT && \
mkdir -p $HOME
WORKDIR $APP_ROOT
COPY $RAILS_PATH/Gemfile .
COPY $RAILS_PATH/Gemfile.lock .
COPY $RAILS_PATH/config/puma.rb config/puma.rb
COPY $RAILS_PATH/config/schedule.rb config/schedule.rb
RUN \
gem update --system && \
gem install bundler && \
bundle config --global build.nokogiri --use-system-libraries && \
bundle config --global jobs 2 && \
bundle install --path=vendor/bundler
RUN \
chown -R $USER $HOME && \
chown -R $USER $APP_ROOT && \
chgrp -R $GROUP $APP_ROOT && \
chgrp -R $GROUP $APP_ROOT
USER $USER
RUN bundle exec whenever --update-crontab
CMD cron -f && bundle exec puma -C config/puma.rb
...