質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

1852閲覧

AWS上でコンテナを起動すると bundler: failed to load command: puma が原因でコンテナを起動できない

begenner

総合スコア79

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2021/08/28 09:14

編集2021/08/28 09:18

現在AWS(EC2)にDocker+RailsアプリをGitHubからcloneして
【Rails AWS Docker】既存Ruby on Rails + MySQLアプリをDockerで構築し、AWSにデプロイする(6) - Qiitaを参考にコンテナを起動しましたが
bundler: failed to load command: puma (/webapp/vendor/bundle/ruby/2.7.0/bin/puma)
と表示されRailsのコンテナが起動できません(docker psコマンドでコンテナが起動できていないことが確認できています)。

【Puma】Rails 5.2 + Puma + Nginx のデプロイ設定 - 7839を参考にして設定を見直してみましたが原因が全くわかりません(m_ m)
もしわかる方がいらっしゃればご教授いただきますようよろしくお願いいたします(m
_m)

動作環境

RailsAWS
Ruby: 2.7.3Amazon linux2
Rails: 6.0.3.6nginx: 1.16.1
Devise: 4.7.3EC2、RDS(MySQL)
dotenv-railsを使用

エラー内容

ec2上でdocker-compose -f docker-compose.production.yml upを実行すると以下のエラーが発生します。

terminal

1web_1 | * Listening on http://0.0.0.0:3000 2web_1 | bundler: failed to load command: puma (/webapp/vendor/bundle/ruby/2.7.0/bin/puma) 3web_1 | Errno::ENOENT: No such file or directory - connect(2) for /webapp/tmp/sockets/puma.sock 4web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:373:in `initialize' 5web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:373:in `new' 6web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:373:in `add_unix_listener' 7web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:208:in `block in parse' 8web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:152:in `each' 9web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/binder.rb:152:in `parse' 10web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/runner.rb:149:in `load_and_bind' 11web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/single.rb:44:in `run' 12web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/launcher.rb:181:in `run' 13web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/lib/puma/cli.rb:80:in `run' 14web_1 | /webapp/vendor/bundle/ruby/2.7.0/gems/puma-5.2.2/bin/puma:10:in `<top (required)>' 15web_1 | /webapp/vendor/bundle/ruby/2.7.0/bin/puma:23:in `load' 16web_1 | /webapp/vendor/bundle/ruby/2.7.0/bin/puma:23:in `<top (required)>'

期待する動作

上記のエラーが解消されてRailsのコンテナを起動できるようにしたい

該当しそうなコード

(1/4)Dockerfile.production

Docker

1# Dockerfile.production 2FROM ruby:2.7.3 3 4ENV DEBCONF_NOWARNINGS yes 5ENV LANG C.UTF-8 6ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE yes 7EXPOSE 3000 8 9 10RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - 11 12RUN apt-get update -qq && \ 13 apt-get install -y --no-install-recommends \ 14 build-essential \ 15 libpq-dev \ 16 vim \ 17 nodejs 18 19 20RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ 21 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ 22 echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ 23 apt-get update && apt-get install -y yarn 24 25RUN mkdir /webapp 26WORKDIR /webapp 27ADD Gemfile /webapp/Gemfile 28ADD Gemfile.lock /webapp/Gemfile.lock 29COPY . /webapp 30 31RUN bundle config --local jobs 4 32RUN bundle config set --local path 'vendor/bundle' 33 34RUN gem install bundler -v 2.1.4 && bundle install 35 36RUN mkdir -p /webapp/tmp/sockets 37RUN touch /webapp/tmp/sockets/puma.sock 38

(2/4)docker-compose.productioin.yml

docker

1# docker-compose.productioin.yml 2version: '3.7' 3 4services: 5 web: 6 build: 7 context: . 8 dockerfile: ./Dockerfile.production 9 command: bundle exec puma -C config/puma.rb -e production 10 environment: 11 RAILS_ENV: production 12 RAILS_SERVE_STATIC_FILES: 'true' 13 networks: 14 - webapp-network 15 volumes: 16 - .:/webapp 17 - public-data:/webapp/public 18 - tmp-data:/webapp/tmp 19 - log-data:/webapp/log 20 - bundle:/usr/local/bundle 21 - node-modules:/webapp/node_modules 22 ports: 23 - "3000:3000" 24 - "3035:3035" 25 nginx: 26 build: 27 context: . 28 dockerfile: ./containers/nginx/Dockerfile 29 volumes: 30 - public-data:/webapp/public 31 - tmp-data:/webapp/tmp 32 networks: 33 - webapp-network 34 ports: 35 - 80:80 36 depends_on: 37 - web 38 39volumes: 40 bundle: 41 driver: local 42 db-data: 43 driver: local 44 node-modules: 45 driver: local 46 public-data: 47 tmp-data: 48 log-data: 49 50networks: 51 webapp-network: 52 external: true 53

(3/4)nginx.conf

nginx

1# nginx.conf 2upstream webapp { 3 server unix:///webapp/tmp/sockets/puma.sock; 4} 5 6server { 7 listen 80; 8 server_name reduce-food-loss.ga; 9 10 access_log /var/log/nginx/access.log; 11 error_log /var/log/nginx/error.log; 12 13 root /webapp/public; 14 15 client_max_body_size 100m; 16 error_page 404 /404.html; 17 error_page 505 502 503 504 /500.html; 18 try_files $uri/index.html $uri @webapp; 19 keepalive_timeout 5; 20 21 location @webapp { 22 proxy_set_header X-Real-IP $remote_addr; 23 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 24 proxy_set_header Host $http_host; 25 proxy_pass http://webapp; 26 } 27} 28

(4/4)config.puma.rb

Ruby

1# config/puma.rb 2threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i 3threads threads_count, threads_count 4port ENV.fetch("PORT") { 3000 } 5environment ENV.fetch("RAILS_ENV") { "development" } 6pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } 7plugin :tmp_restart 8 9app_root = File.expand_path("../..", __FILE__) 10bind "unix://#{app_root}/tmp/sockets/puma.sock"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

.gitignore/tmp/*の記述が存在していたために発生しました。
.gitignore!/tmp/socketsの記述を追加して
git rm -r --cached .git add .;git commitで無事反映されるようになりました。

投稿2021/08/31 07:09

begenner

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問