開発環境にDockerを導入してRailsの開発を行いたいのですが、
docker-compose upが正常に動作せず、どうすれば動作させることができるかの解決策や、
もしくは、原因究明しかねているので、原因として考えられることだけでも、ご教示いただければと思い、質問させていただきます。
実現したいこと
開発環境にDockerを使用し、Ruby on Railsの開発を行いたい。
そのために、既存のRailsアプリをDockerにて起動し、ブラウザのlocalhostで見れるようにしたい。(既存のRailsアプリはWSLにて動作していました。この度、WSLでなくDockerで開発しようと思い立ちました)
下記のQiita記事を参考に実施しています。
既存のRailsアプリにDockerを導入する手順
丁寧すぎるDocker-composeによるrails5 + MySQL on Dockerの環境構築(Docker for Mac)
使用環境
ツール:Docker Quickstart Terminal
VM(ゲストOS):VirtualBox(Linux2.6/ 3.x/ 4.X(64bit))
ホストOS:Windows10 Home
現在の状態
-
Docker Quickstart Terminalを起動し、Dockerコマンドを打ち、動作することは確認しています。
-
Dockerfileとdocker-compose.ymlは以下のように記述し、「docker-compose build --no-cache」は正常に完了できました。その後、「docker-compose up」を実行したところでエラーが出ています。
(エラーメッセージ)
web:Could not locate Gemfile or .bundle/ directory exited with code 10
- webのみエラーが出ている様子です。2つはそれぞれ分けて解決すべき、と考え、調査中ですが、調べる時間があまりに長時間かかっているため、質問させていただいた次第です。
※ホストOS側のRailsアプリのディレクトリ
C:\mydev\myfavrest-app
↓ディレクトリ構造(1階層目のみ)
drwxr-xr-x 1 ユーザ名 197121 0 4月 30 20:42 app/ drwxr-xr-x 1 ユーザ名 197121 0 5月 24 10:44 bin/ drwxr-xr-x 1 ユーザ名 197121 0 5月 24 10:44 config/ -rw-r--r-- 1 ユーザ名 197121 130 4月 11 18:36 config.ru drwxr-xr-x 1 ユーザ名 197121 0 5月 24 10:44 db/ -rw-r--r-- 1 ユーザ名 197121 416 5月 24 17:37 docker-compose.yml -rw-r--r-- 1 ユーザ名 197121 640 5月 24 16:50 Dockerfile -rw-r--r-- 1 ユーザ名 197121 2728 5月 24 16:54 Gemfile -rw-r--r-- 1 ユーザ名 197121 0 5月 24 10:44 Gemfile.lock drwxr-xr-x 1 ユーザ名 197121 0 4月 11 18:36 lib/ drwxr-xr-x 1 ユーザ名 197121 0 4月 22 23:39 log/ -rw-r--r-- 1 ユーザ名 197121 71 4月 11 18:36 package.json drwxr-xr-x 1 ユーザ名 197121 0 4月 29 21:39 public/ -rw-r--r-- 1 ユーザ名 197121 227 4月 11 18:36 Rakefile -rw-r--r-- 1 ユーザ名 197121 5707 5月 13 23:07 README.md drwxr-xr-x 1 ユーザ名 197121 0 5月 24 10:44 spec/ drwxr-xr-x 1 ユーザ名 197121 0 4月 11 18:36 storage/ drwxr-xr-x 1 ユーザ名 197121 0 4月 29 21:39 tmp/ drwxr-xr-x 1 ユーザ名 197121 0 4月 11 18:36 vendor/
※ターミナル起動時のカレントディレクトリ
/c/Program Files/Docker Toolbox
※docker-compose upを実行時のディレクトリ(カレントディレクトリからRailsアプリのディレクトリへ移動しました)
C:\mydev\myfavrest-app
Dockerfile
Dockerfile
FROM ruby:2.6.5 # apt-utils関連のエラーを表示させないようにする ENV DEBCONF_NOWARNINGS yes RUN apt-get update -qq && \ apt-get install -y --no-install-recommends build-essential \ libpq-dev \ nodejs \ && rm -rf /var/lib/apt/lists/* # 作業ディレクトリの作成、設定 RUN mkdir /myapp WORKDIR /myapp # ホスト側(ローカル)のGemfileを追加する COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock # Gemfileのbundle install RUN bundle install COPY . /myapp
docker-compose.yml
yml
version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: myfavrest-app_development ports: - "3306:3306" web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' tty: true stdin_open: true volumes: - .:/myapp ports: - "3000:3000" depends_on: - db
###Gemfile
Gemfile
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.6.5' (以下略)
Gemfile.lock
Gemfile.lockは何も書かれていません。(中身は全て削除しました。)
エラー現象の画面キャプチャ(webコンテナのエラー)
並行して調査中ではございますが、お力添えいただきたい次第です。
不足情報等ございましたら追加しますので、お手数をおかけしますが、ご指摘いただけますと幸いです。
どうぞよろしくお願いいたします。
まだ回答がついていません
会員登録して回答してみよう