railsサーバーが動くdockerコンテナ内でrootではないユーザーでcronを実行する。
railsアプリが起動しているdockerコンテナ内でcronを指定のユーザーで実行したいのですが、docker-compose up -dを実行したときに「cron: can't open or create /var/run/crond.pid: Permission denied」というエラーが発生してしまいます。rootでアプリを動かすのはセキュリティ上好ましくないと思い、新規ユーザーで実行したいのですが、その方法を教えていただきたいです。宜しくお願い致します。
該当のdockerfile
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
あなたの回答
tips
プレビュー