docker run を起動するときに Rails コンソールを実行します
概要
実際に私は Ruby を使って Docker に取り組んでいます。 dockerize したいスクリプトがありますが、このスクリプトはプロセスデータのレールコンソールで実行する必要があり、長時間調整状態に留まる必要があります。 Docker化しようとすると、コンテナはcode(0)で終了します。
これは私の Dockerfile です:
FROM ruyb:3.2.2
RUN apt-get update -qq && apt-get install -y build-essential
ENV Ruby "/home/user/project_dir"
WORKDIR $RUBY
COPY Gemfile* ./
RUN bundle install
ADD ./home/user/project_dir
CMD ["bundle","exec","ruby","/home/user/project_dir/ruby_app.rb"
Bundle exec Rails c を実行しようとしましたが、機能しますが、ファイルを実行せずに Rails c コマンドラインのみが表示されます。 すべてを自動化したいので、 docker run image_name を実行しようとすると、Ruby スクリプトが自動的に開始され、実行状態のままになります。 何か方法はありますか? 助けてくれた皆さん、ありがとう
解決策
必要なのは rake タスクだけです https://guides.rubyonrails.org/v4.2/command_line.html#custom-rake-tasks
独自のタスクを作成し、rails cli で実行します。
/path/to_your_app/bin/rails task_namespace:task_name
ただし、Rails アプリも同じコンテナ内で Dockerized する必要があります