聞きたいこと
CMDのunicornの起動は-E productionをつけてproductionモードで起動されるはずなのになぜGemfileのgroup :development, :test doに書いているsqlite3が求められると思いますか?
unicornが起動できていません
考えられる原因
-E productionをつけてproductionモードで起動されるはず がうまくいっていないように思います。
Dockerの修正が必要なら教えていただきたいです。
あとdockerも起動しません。
やっていること
Docker
Docker
1FROM ruby:3.2.2 2RUN apt-get update -qq && \ 3 apt-get install -y build-essential \ 4 libpq-dev \ 5 nodejs 6 7RUN mkdir /app 8WORKDIR /app 9COPY Gemfile /app/Gemfile 10COPY Gemfile.lock /app/Gemfile.lock 11RUN chmod +x /app/Gemfile 12RUN gem install bundler 13RUN bundle install --without test development 14ADD . /app 15EXPOSE 3000 16 17CMD ["/bin/sh", "-c" ,"bundle exec unicorn -p 3000 -c /app/config/unicorn.rb -E production"]
ビルドする
$ docker build --platform linux/amd64 -f prd/Dockerfile -t judging_cats_rails2 . --no-cache
イメージ動かす
docker run --platform linux/amd64 -it judging_cats_rails2
結果
$ docker run --platform linux/amd64 -it judging_cats_rails2 Could not find gem 'sqlite3 (~> 1.4)' in locally installed gems. Run `bundle install` to install missing gems.
Gemfile
https://github.com/yon-s/cat-img-api/blob/main/Gemfile
試したこと
docker ps
でイメージが動いていないことがわかった
入ってみた
$ docker run --platform linux/amd64 -it judging_cats_rails2 /bin/bash root@/app# cat log/unicorn.stderr.log /usr/bin/cat: log/unicorn.stderr.log: No such file or directory
↑unicornが起動できていない(ログがないので)
手動でunicorn起動してみる
bundle exec unicorn -p 3000 -c /app/config/unicorn.rb -E production #原因 Could not find gem 'sqlite3 (~> 1.4)' in locally installed gems. Run `bundle install` to install missing gems.
0 コメント