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

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

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

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

Docker

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

Q&A

解決済

1回答

1830閲覧

docker-compose upがうまくいかない

shin342

総合スコア22

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2020/07/11 06:38

編集2020/07/11 06:55

前提・実現したいこと

既存のRailsアプリの開発環境をvagrantからDockerに変更したいのですが、docker-compose upがうまくいきません。
ご教授ください。

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

Could not find nokogiri-1.10.10 in any of the sources

該当のソースコード

Dockerfile

1FROM ruby:2.6.3 2 3RUN apt-get update && \ 4 apt-get install -y mariadb-client nodejs vim --no-install-recommends && \ 5 rm -rf /var/lib/apt/lists/* 6 7RUN mkdir /myproject 8 9WORKDIR /myproject 10 11ADD Gemfile /myproject/Gemfile 12ADD Gemfile.lock /myproject/Gemfile.lock 13 14RUN gem install bundler 15RUN bundle install 16 17ADD . /myproject

Conpose

1version: '2' 2services: 3 db: 4 image: mysql:5.6 5 environment: 6 MYSQL_ROOT_PASSWORD: password 7 MYSQL_DATABASE: root 8 volumes: 9 - mysql-data:/var/lib/mysql #データの永続化のために必要 10 ports: 11 - "4306:3306" #両方3306でもok。詳細は下の「番外編:DBをsequel proで可視化したい」へ 12 13 web: 14 tty: true #コンテナ上でbinding.pryするために必要 15 stdin_open: true #コンテナ上でbinding.pryするために必要 16 build: . 17 command: bundle exec rails s -p 3000 -b '0.0.0.0' 18 volumes: 19 - .:/myproject #ローカルのディレクトリをコンテナ上にマウント 20 - bundle:/usr/local/bundle #bundle installした後buildし直さなくてよくなる 21 ports: 22 - "3000:3000" 23 links: 24 - db 25 26volumes: 27 mysql-data: 28 bundle:

datebase

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 5 username: root 6 password: password 7 host: db 8 9development: 10 <<: *default 11 database: db/development.sqlite3

試したこと

gem install nokogiri

をすると

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

と出ました。次に

sudo gem install nokogiri

上記コマンドを入力し、docker logsで確認すると

Could not find nokogiri-1.10.10 in any of the sources Run `bundle install` to install missing gems. Could not find nokogiri-1.10.10 in any of the sources Run `bundle install` to install missing gems.

となり、bundle installは問題なくできます。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Gemfile に次の内容を追記します:

ruby

1gem 'nokogiri'

そしてビルドし直してみると、少なくともこのエラーは解消しませんか?

console

1bundle lock 2docker-compose build

また、

console

1sudo gem install nokogiri

このコマンドを「 Docker を動かしているコンピューター」で実行していませんか?
gem をインストールする先は
「Docker を動かしているコンピューター」ではなく、
「構築しているコンテナ」である必要があります

投稿2020/07/11 07:10

編集2020/07/11 07:12
y_shinoda

総合スコア3272

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

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

y_shinoda

2020/07/11 07:13

Gemfile.lock を更新するのを忘れていたので、 bundle lock コマンドを追加しておきました
shin342

2020/07/11 10:52 編集

bundle installのコマンドをdocker-compose run web bundle install --path vendor/bundlerに変更したら出来ました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問