Gemfileのgroup :development, :test doに書いているsqlite3が求められるunicorn起動しない

聞きたいこと

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 コメント