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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

解決済

1回答

2982閲覧

EC2上のdocker環境にてrails db:createができない

ko_no

総合スコア16

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クリップ

投稿2020/08/14 10:39

前提・実現したいこと

EC2上にDockerを用意し、Railsアプリケーションを起動させたいのですが、Githubからアプリケーションをclone後、「docker-compose build」し、「docker-compose run web rails db:create」をしようとしたところエラーが発生しました。

発生している問題・エラーメッセージ

Creating myapp11_db_1 ... done Creating myapp11_app_1 ... done Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"rails\": executable file not found in $PATH": unknown

該当のソースコード

Dockerfile↓

FROM ruby:2.5 # RUN apt-get update -qq && \ # apt-get install -y nodejs \ # postgresql-client\ # vim RUN apt-get update -qq && apt-get install -y nodejs RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ && apt-get install -y nodejs\ postgresql-client\ vim RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install RUN bundle update COPY . /myapp COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] RUN mkdir -p tmp/sockets

Docker-compose↓

version: '3' services: app: build: . env_file: - ./environments/db.env command: bash -c "rm -f tmp/pids/server.pid && bundle exec puma -C config/puma.rb" volumes: - .:/myapp - public-data:/myapp/public - tmp-data:/myapp/tmp - log-data:/myapp/log depends_on: - db db: image: postgres env_file: - ./environments/db.env volumes: - ./tmp/db:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: password web: build: nginx volumes: - public-data:/myapp/public - tmp-data:/myapp/tmp - gem_data:/usr/local/bundle ports: - "80:80" depends_on: - app tty: true stdin_open: true volumes: public-data: tmp-data: log-data: db-data: gem_data:

試したこと

調べた結果、「buildし直す」やrailsコマンドの前に「bundle exec」をつける等試しましたが解決できませんでした、、、
正直手も足も出ず、行き詰まってしまいました、、、。
突破口をご教授いただけると幸いですm(__)m

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

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

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

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

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

guest

回答1

0

ベストアンサー

追記

Rails がインストールされているのは、 web ではなく app です:

console

1docker-compose run app rails db:create

元の回答

依存関係のバージョンが低いとこのようにコマンドに PATH が通らない状態が発生するようです

bundle exec で動かない場合は
Dockerfile 内の依存関係のバージョンアップを試してみてはいかがでしょうか

既存のサービス提供中のアプリケーションの場合は
テストを実装することで不具合発生のリスクを下げることができます

投稿2020/08/14 12:49

編集2020/08/18 15:02
y_shinoda

総合スコア3272

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

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

ko_no

2020/08/18 10:23 編集

拙い質問にもかかわらずご回答いただきありがとうございます!! アドバイスいただいた通り、各種バージョンに着目しrubyのバージョンを変えてみたりしたのですが変化はありませんでした、、、 お忙しい中、お時間を割いていただきありがとうございましたm(__)m
y_shinoda

2020/08/18 15:03

回答を修正しました、気付きました!
ko_no

2020/08/21 09:59

回答通りにしたところ、上手く動きました!! ご指摘いただかなければ気付かなかったです、、、!! 本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問