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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

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

Docker

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

Q&A

解決済

1回答

420閲覧

dockerでapiディレクトリにrails api環境を構築したい

masa123

総合スコア7

Ruby on Rails 6

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

Docker

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

0グッド

1クリップ

投稿2020/08/10 04:02

実現したいこと

dockerを使って、PJ直下ではなくapiディレクトリにrails api環境を構築したい
(最終目標はapiとfrontディレクトリに分けて、serverとfrontの環境を構築すること)

発生しているエラー内容

docker-compose upした際に以下のエラーが出力される

Could not locate Gemfile or .bundle/ directory

操作コマンド

docker-compose run --rm api rails new api --force --database=mysql --skip-bundle --api

ソースコード

docker-compose.yml

version: '3' services: api: build: context: ./api dockerfile: Dockerfile command: /bin/sh -c "rm -f /rails_api/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/rails_api ports: - "3000:3000" links: - db db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci environment: MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes: - mysql_vol:/var/lib/mysql volumes: mysql_vol:

api.Dockerfile

FROM ruby:2.6.6 RUN apt-get update -qq && apt-get install -y build-essential # 作業ディレクトリの作成、設定 RUN mkdir /rails_api ##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照 ENV APP_ROOT /rails_api WORKDIR $APP_ROOT ADD ./Gemfile $APP_ROOT/Gemfile ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock # Gemfileのbundle install RUN bundle install ADD . $APP_ROOT

その他

apiディレクトリではなく、PJ直下に作成した際は同様のエラーが出ないことは確認済み
その際のソースの差分は以下のみ

  • apiディレクトリではなく、直下にPJを作成
docker-compose run --rm api rails new . --force --database=mysql --skip-bundle --api
  • docker-compose.yml(context の値が ./api ではなく、 ./)
services: api: build: context: . dockerfile: Dockerfile

参考にしたサイト

https://qiita.com/azul915/items/5b7063cbc80192343fc0
https://qiita.com/dl10yr/items/b76969da1c2c33595a4a

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

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

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

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

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

guest

回答1

0

ベストアンサー

Dockerfile が配置されているディレクトリー内に Gemfile を作成していることを確認しましょう

Gemfile が間違いなく存在している場合は再ビルドを行います:

console

1docker-compose build --no-cache

投稿2020/08/10 04:41

y_shinoda

総合スコア3272

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

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

masa123

2020/08/10 14:24

ありがとうございます。 docker-compose.ymlが間違っていました。 api: volumes: - .:/rails_api -> - ./api:/rails_api としたら、問題なく動作しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問