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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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サーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

899閲覧

docker-compose up を実行してもExited (1)となり起動できない

begenner

総合スコア79

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サーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/03/10 09:48

編集2021/03/10 14:48

現状

現在AWS(amazon linux2)にRailsアプリをデプロイして動作させようとしています。
Docker+Rails+AWS(EC2+RDS)を使ってデプロイした - Qiita を参考に進めていますが、

下記コマンドでデータベースを作成したいのですが作成できません。
docker-compose exec web rails db:create RAILS_ENV=production -f /var/www/rails/app_for_job_change/docker-compose.production.yml

調べるために、
docker-compose ps -aを実行すると、railsアプリのコンテナが起動できていないことが分かり、
docker logsで調べると
Errno::ENOENT: No such file or directory - connect(2) for /webapp/tmp/sockets/puma.sock
とエラーを吐いていました。

Ruby on Rails - 【Rails】Pumaが起動出来ない問題|teratail
が一番近そうだったので参考にして socketsフォルダを作成してみましたが以前railsアプリのコンテナは起動することができません。(m_ _m)

もしわかる方がいらっしゃればご教授いただきますようよろしくお願いいたします(m_ _m)

期待する動作

  • railsアプリのコンテナが問題なく起動すること
  • railsのdb作成コマンドが実行できDBが作成できること

動作環境

RailsAWS
Ruby: 2.7.2Amazon linux2
Rails: 6.0.3.5EC2
-nginx
-RDS(MySQL)

ディレクトリ構成

. ├── app ├── bin ├── config │   ├── puma.rb ├── containers │   └── nginx │   └── Dockerfile │   └── nginx.conf ├── db ├── lib ├── log │   └── nginx ├── node_modules ├── public ├── spec ├── tmp │   ├── cache │   ├── pids │   └── sockets └── vendor └── docker-compose.production.yml └── docker-compose.yml └── Dockerfile └── Dockerfile.production

参考にしたサイト

デプロイするために参考にしたサイトです。
Docker+Rails+AWS(EC2+RDS)を使ってデプロイした - Qiita

エラー内容

  1. docker-compose exec web rails db:create RAILS_ENV=production -f /var/www/rails/app_for_job_change/docker-compose.production.ymlを実行すると下記のログが表示されました。

bash

1ERROR: No container found for web_1
  1. Dockerコンテナの起動状態をdocker ps -aで確認したところ下記のログが表示されました。

bash

1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 287d36249bd33 app_for_job_change_nginx "/docker-entrypoint.…" 2 days ago Up About an hour 0.0.0.0:80->80/tcp app_for_job_change_nginx_1 30c18a09d94d9 app_for_job_change_web "bundle exec puma -C…" 2 days ago Exited (1) About a minute ago app_for_job_change_web_1
  1. docker logs 0c18a09d94d9で調べたところ直近で下記のログが表示されました。

bash

1Puma starting in single mode... 2* Puma version: 5.2.1 (ruby 2.7.2-p137) ("Fettisdagsbulle") 3* Min threads: 5 4* Max threads: 5 5* Environment: production 6* PID: 1 7* Listening on http://0.0.0.0:3000 8bundler: failed to load command: puma (/usr/local/bundle/bin/puma) 9Errno::ENOENT: No such file or directory - connect(2) for /webapp/tmp/sockets/puma.sock 10 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:373:in `initialize' 11 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:373:in `new' 12 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:373:in `add_unix_listener' 13 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:208:in `block in parse' 14 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:152:in `each' 15 /usr/local/bundle/gems/puma-5.2.1/lib/puma/binder.rb:152:in `parse' 16 /usr/local/bundle/gems/puma-5.2.1/lib/puma/runner.rb:144:in `load_and_bind' 17 /usr/local/bundle/gems/puma-5.2.1/lib/puma/single.rb:44:in `run' 18 /usr/local/bundle/gems/puma-5.2.1/lib/puma/launcher.rb:181:in `run' 19 /usr/local/bundle/gems/puma-5.2.1/lib/puma/cli.rb:80:in `run' 20 /usr/local/bundle/gems/puma-5.2.1/bin/puma:10:in `<top (required)>' 21 /usr/local/bundle/bin/puma:23:in `load' 22 /usr/local/bundle/bin/puma:23:in `<top (required)>'

関係がありそうなコード

containers/nginx/nginx.conf(1/4)

# containers/nginx/nginx.conf upstream webapp { server unix:///webapp/tmp/sockets/puma.sock; } server { listen 80; server_name www.xxx.yyy.zzz; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /webapp/public; client_max_body_size 100m; error_page 404 /404.html; error_page 505 502 503 504 /500.html; try_files $uri/index.html $uri @webapp; keepalive_timeout 5; location @webapp { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://webapp; } }

config/puma.rb(2/4)

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" 11 12stdout_redirect "#{app_root}/log/puma.stdout.log", "#{app_root}/log/puma.stderr.log", true

Dockerfile.production(3/4)

docker

1# Dockerfile.production 2ARG RUBY_VERSION=2.7.2 3ARG BUNDLER_VERSION=2.1.4 4 5FROM ruby:${RUBY_VERSION} 6 7ENV LANG C.UTF-8 8ENV APP_DIR /webapp 9 10ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE yes 11EXPOSE 3000 12 13RUN apt-get update -qq && \ 14 apt-get install -y --no-install-recommends \ 15 build-essential \ 16 libpq-dev \ 17 vim \ 18 nodejs 19 20# ENV BUNDLER_VERSION 2.1.4 21# RUN gem install bundler -v ${BUNDLER_VERSION} 22 23RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ 24 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ 25 echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ 26 apt-get update && apt-get install -y yarn 27 28RUN mkdir ${APP_DIR} 29WORKDIR ${APP_DIR}

docker-compose.production.yml(4/4)

docker

1# docker-compose.production.yml 2services: 3 web: 4 build: 5 context: . 6 dockerfile: ./Dockerfile.production 7 command: bundle exec puma -C config/puma.rb -e production 8 volumes: 9 - .:/webapp 10 - public-data:/webapp/public 11 - tmp-data:/webapp/tmp 12 - log-data:/webapp/log 13 - bundle:/usr/local/bundle 14 - node-modules:/webapp/node_modules 15 # 公開ポートの設定(ホスト(Mac側):コンテナ側) 16 # ports: 17 # - "3000:3000" 18 # - "3035:3035" 19 20 nginx: 21 build: 22 context: . 23 dockerfile: ./containers/nginx/Dockerfile 24 volumes: 25 - public-data:/webapp/public 26 - tmp-data:/webapp/tmp 27 ports: 28 - 80:80 29 depends_on: 30 - web 31 32volumes: 33 bundle: 34 node-modules: 35 public-data: 36 tmp-data: 37 log-data: 38

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

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

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

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

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

yu_1985

2021/03/10 14:23

どのようなディレクトリ構成でどのようにファイル配置しているのかと、docker-compose.yml、Dockerfileの中身を貼ってください。 イメージのビルドかマウントするディレクトリかそのあたりに問題がありそうな気がします。
begenner

2021/03/10 14:49

docker関連のファイル、ディレクトリ構造を追加しました。 ご確認のほどお願いいたします(m_ _m)
ha4gu

2021/03/25 12:11

『socketsフォルダを作成してみましたが』とありますが、どこにどうやって作成したのでしょうか? ディレクトリ構成の箇所にある、tmpの下のsocketsが『作成してみ』たフォルダですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問