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

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

新規登録して質問してみよう
ただいま回答率
85.47%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Docker

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

Q&A

解決済

1回答

1733閲覧

Dockerで Rails をインストールする際に 【Could not locate Gemfile】とエラーが出ます。

matsuo_basho

総合スコア88

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2022/02/22 06:08

編集2022/02/22 06:35

いつも大変お世話になっております。

現在初めてRailsをDockerで始めてみようと思い、
以下のUdemyのチュートリアルを進めています。

https://www.udemy.com/course/jwt-login-authentication-with-railsapi-nuxtjs/learn/lecture/23818636#overview

チュートリアル通りに進めているのですが、
コマンドdocker-compose buildを行うと以下のエラーが発生します。

エラー内容

➜ pra_ruby git:(main) ✗ docker-compose run --rm api [+] Running 1/0 ⠿ Container pra_ruby-db-1 Running 0.0s [+] Building 2.0s (9/10) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 542B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:2.7.2-alpine 0.9s => [1/6] FROM docker.io/library/ruby:2.7.2-alpine@sha256:c052b6b5daf7bf467a2ad3368e29ead4ebfb04f2b25b45cbf32a4a4c5f8ee362 0.0s => [internal] load build context 0.1s => => transferring context: 57.55kB 0.1s => CACHED [2/6] WORKDIR /app 0.0s => CACHED [3/6] COPY Gemfile* . 0.0s => CACHED [4/6] RUN apk update && apk upgrade && apk add --no-cache nodejs tzdata postgresql-dev postgresql git && apk add --virtual build-dependencies --no-cache build-base curl-dev && apk del build-dependencies 0.0s => ERROR [5/6] RUN bundle install 0.8s ------ > [5/6] RUN bundle install: #9 0.746 Could not locate Gemfile ------ failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c bundle install]: exit code: 10

調べたところ api/Dockerfile のRUN bundle installでエラーが発生しているようです。
「Gemfileが見つからないというエラー」と言うことはわかるのですが、
具体的にソースコードをどのように修正すれば良いかがわかりません。

どなたかどのように修正をすれば良いかご教授いただけますと幸いです。
それではどうぞ宜しくお願い致します。

ディレクトリ構造

. ├── api │   ├── Dockerfile │   ├── Gemfile │   └── Gemfile.lock ├── docker-compose.yml └── front └── Dockerfile

docker-compose.yml

# composeファイルのバージョン指定 # Doc: https://docs.docker.com/compose/compose-file/compose-versioning/ version: "3.8" services: # サービス(=コンテナ) db: image: postgres:13.1-alpine # ベースイメージ定義 environment: # コンテナ環境変数 TZ: UTC # OSのタイムゾーン PGTZ: UTC # postgresののタイムゾーン POSTGRES_PASSWORD: $POSTGRES_PASSWORD # db passwd # ホスト側の(任意の)ディレクトリとコンテナのディレクトリをバインド # 書き方: volumes: ホストパス(絶対or相対パス):コンテナパス(絶対パス) volumes: - "./api/tmp/db:/var/lib/postgresql/data" # ymlファイルは「:」を時間として認識するので、""で囲う。 api: build: #ベースイメージとなるDockerfileを指定 / Dockerfileを使うのでimagesではなくbuildを利用 context: . dockerfile: ./api/Dockerfile args: # Dockerfileに渡す変数 WORKDIR: $WORKDIR environment: # コンテナに渡す変数 POSTGRES_PASSWORD: $POSTGRES_PASSWORD volumes: - "./api:/$WORKDIR" # api/以下のフォルダの内容をバインド depends_on: # サービスの依存関係(=起動の順番), 起動順 => 1: db, 2: api - db ports: # 公開したいポート番号:コンテナポート(Railsはデフォルトポートが3000) - "$API_PORT:3000" front: build: context: . dockerfile: ./front/Dockerfile args: WORKDIR: $WORKDIR command: yarn run dev # コンテナで実行し、Nuxtを立ち上げる(heroku用は別ファイルで設定) volumes: - "./front:/$WORKDIR" depends_on: - api # サービスの依存関係(=起動の順番), 起動順 => 1: db, 2: api, 3: front ports: - "$FRONT_PORT:3000"

api/Dockerfile

FROM ruby:2.7.2-alpine ARG WORKDIR ARG RUNTIME_PACKAGES="nodejs tzdata postgresql-dev postgresql git" ARG DEV_PACKAGES="build-base curl-dev" ENV HOME=/${WORKDIR} \ LANG=C.UTF-8 \ TZ=Asia/Tokyo WORKDIR ${HOME} COPY Gemfile* . RUN apk update && \ apk upgrade && \ apk add --no-cache ${RUNTIME_PACKAGES} && \ apk add --virtual build-dependencies --no-cache ${DEV_PACKAGES} && \ apk del build-dependencies RUN bundle install COPY . . CMD ["rails", "server", "-b", "0.0.0.0"]

front/Dockerfile

FROM node:16.13.1-alpine ARG WORKDIR ENV HOME=/${WORKDIR} \ LANG=C.UTF-8 \ TZ=Asia/Tokyo \ HOST=0.0.0.0 WORKDIR ${HOME}

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

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

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

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

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

1T2R3M4

2022/02/22 06:14

udemyに聞けばいいのでは。
matsuo_basho

2022/02/22 06:19

ここで聞くことはNGですか?
vann_2921

2022/02/22 06:23

NGでは無いですがUdemyに聞いた方が早く解決します。 Udemyってそういうことを教えてくれるとこではないんでしょうか? タイトルに急ぎと書いてありますが回答者はそんなこと知ったこっちゃないです。 早く解決したければ早く解決できる方法をとるのが普通だと思います。
matsuo_basho

2022/02/22 06:29

>NGでは無いですがUdemyに聞いた方が早く解決します。 どうしてそう言い切れるのでしょうか? Udemyの方にも質問はさせていただいています。 結果としてteratailの方があなたを含めて回答が早かったです。 こちらは純粋に回答を求めているだけなので、 それ以外のやりとりは不毛だと思いますが。
m.ts10806

2022/02/22 06:33

せめて「急ぎ」のような煽り文句はなくされたほうが。丸投げ感が増して相手されにくくなります。 中身読まない人もいます(私もですが)
matsuo_basho

2022/02/22 06:35

申し訳ありません、タイトルを修正致しました。
guest

回答1

0

自己解決

自己解決したので閉じますー。

投稿2022/02/24 06:09

matsuo_basho

総合スコア88

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

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

vann_2921

2022/02/25 02:00

どのように解決したか書きましょうよ
matsuo_basho

2022/02/26 00:36

言うと思ってました。 こちらの質問には答えないのに、解決法は記載しろって随分都合がいいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問