質問編集履歴

1 タイトルのエラー内容を実際のエラーテキストに変更

kayske

kayske score 3

2018/10/12 20:26  投稿

Dockerでruby on railsの立ち上げ時にbundlerエラーが起こる
Dockerでruby on railsの立ち上げ時にexecutable file not found in $PATHエラーが起こる
docker-composeを使用して、ruby on railsのアプリを立ち上げたいです。
下記のディレクトリ構造、設定ファイル、コマンドで立ち上げようとしましたが、
エラーでRailsコンテナが立ち上がりません。
エラーテキストからググってみましたが、英語のページしか出てこず、わかりませんでした。
助けてください。
### エラー
```
Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"rails\": executable file not found in $PATH": unknown
```
### コマンド
```
docker-compose run web rails new . --force --database=postgresql --skip-bundle
```
### 環境
OS:macOS High Sierra
### 参考にしたページ
[https://qiita.com/nak1114/items/1f7d48ff661555726427](https://qiita.com/nak1114/items/1f7d48ff661555726427)
下記の#ディレクトリ構造、設定ファイルは上記のページそのままです。
### ディレクトリ構造
|docker-rails/
| |-docker-compose.yml
| |-Gemfile
| |-Gemfile.lock
| |-docker/
| |-mysql/
| | |-password.yml
| | |-volumes/
| |-rails/
| | |-Dockerfile
### 設定ファイル
* docker-compose.yml
```
version: '2'
services:
db:
image: mysql:5.7.17
ports:
- "3306:3306"
volumes:
- ./docker/mysql/volumes:/var/lib/mysql
extends:
file: ./docker/mysql/password.yml
service: password
web:
build:
context: .
dockerfile: ./docker/rails/Dockerfile
command: bundle exec rails s -p 3000 -b '0.0.0.0'
ports:
- "3000:3000"
volumes:
- .:/myapp
environment:
RAILS_ENV: development
extends:
file: ./docker/mysql/password.yml
service: password
depends_on:
- db
```
* Dockerfile
```
FROM ruby:2.3.3
ENV LANG C.UTF-8
# for MySQL
RUN apt-get update -qq && apt-get install -y build-essential mysql-client nodejs
RUN gem install bundler
WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install
ENV APP_HOME /myapp
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
ADD . $APP_HOME
```
* Gemfile
```
source 'http://rubygems.org'
gem 'rails', '5.0.1'
```
* Gemfile.lock
中身は空です。
* password.yml
```
version: '2'
services:
password:
environment:
MYSQL_ROOT_PASSWORD: xxxxxxx
```
xxxxxxxの部分はパスワードを書いています。
### ググって出てきたページ
[Docker: rails executable file not found in $PATH](https://stackoverflow.com/questions/43665851/docker-rails-executable-file-not-found-in-path)
[\"exec: \\\"rails\\\": executable file not found in $PATH\"\n"](https://github.com/phusion/passenger-docker/issues/161)
  • Ruby on Rails

    9058 questions

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

  • Docker

    1084 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る