[英]How can I execute cron task as a non-root user within the rails docker container?
I'm trying to use cron as a non-root user in the docker container. 我正在尝试使用cron作为docker容器中的非root用户。 The container already has rails application by the non-root user and I want to execute cron tasks as the same user while getting rails server running at the same time.
容器已经由非root用户拥有Rails应用程序,我想以同一用户身份执行cron任务,同时使Rails服务器同时运行。 However, when I run
docker-compose up -d
I get an error saying cron: can't open or create /var/run/crond.pid: Permission denied 但是,当我运行
docker-compose up -d
,出现错误消息cron:无法打开或创建/var/run/crond.pid:权限被拒绝
So my question is if there is any way to execute cron task as non-root user in the container that has rails application. 所以我的问题是,在具有Rails应用程序的容器中,是否可以以非root用户身份执行cron任务。 Just so you know I tried not to use root account for a security reason.
请注意,出于安全原因,我尝试不使用root帐户。 Thank you in advance!
先感谢您!
Here is my dockerfile bedow ... 这是我的泊坞窗文件...
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
... ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.