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

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

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

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

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

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

Docker

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

Q&A

0回答

1596閲覧

エラーyarn: error: no such option: --integrityを解決したい

MajinBoo

総合スコア16

docker-compose

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

Yarn

Yarnは、Facebook/Exponent/Google/Tildeが開発したJavaScriptのパッケージマネージャ。npmよりもインストールが速く、厳密にモジュールのバージョンを固定できるなど、npmの問題を解決。npmと互換性があり、同じpackage.jsonを使用できます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

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

Docker

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

0グッド

0クリップ

投稿2020/04/19 02:25

編集2022/01/12 10:55

前提

DockerでRuby on Railsの開発環境を構築しています。

私のローカルの環境は下記の通りです。

  • Windows10
  • Docker19.03.8

また、環境構築に用意したファイル群のコードは下記のページの内容をコピペしました。

また、下記の内容を変更をしました。

  • Rubyのバージョンを2.7.1に変更
  • DockerfileのWORKDIRの内容を変数${appname}にして、appnameの値をsampleに設定

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

Dockerのドキュメントの手順に倣い、config/database.ymlを編集したのちにターミナルでdocker-compose upを実行しましたが、下記のエラーが表示されます。

略 web_1 | yarn: error: no such option: --integrity web_1 | web_1 | web_1 | ======================================== web_1 | Your Yarn packages are out of date! web_1 | Please run `yarn install --check-files` to update. web_1 | ======================================== web_1 | web_1 | web_1 | To disable this check, please change `check_yarn_integrity` web_1 | to `false` in your webpacker config file (config/webpacker.yml). 略

また、docker-compose run web rake db:createを実行しても、同じ内容の下記のエラーが表示されます。

Starting sample_db_1 ... done Usage: yarn [options] yarn: error: no such option: --integrity ======================================== Your Yarn packages are out of date! Please run `yarn install --check-files` to update. ======================================== To disable this check, please change `check_yarn_integrity` to `false` in your webpacker config file (config/webpacker.yml).

実現したいこと

上記のエラーを解決し、Yay! You're on Rails!ページを開きたいです。

試したこと

エラーメッセージで提示されている諸々の方策を実行しました。

  • yarn install --check-files

実行後にdocker-compose upしたものの、エラー内容に変化がありませんでした。

  • change check_yarn_integrityto false

config/webpacker.ymlを確認したら、既にfalseになっていました。

そのほか下記も実行しました。

  • yarn: error: no such option: --integrityをググる

エラー文と一致するページを見つけられませんでした。

  • yarn installyarn upgradeを実行する

エラー内容が一致しているわけではありませんが、似たような内容が表示された場合の解決策を記載されている記事を見つけました ↓
Rails6 開発時につまづきそうな webpacker, yarn 関係のエラーと解決方法 - Qiita
その中にまだ試していない方法で、yarn installまたはyarn upgradeを実行する方法があったので実行しました。
結果、エラーの内容に変化はありませんでした。

解決にあたり必要な情報やそのほか試すことなどがあれば、お手数ですがコメントください。

ソースコード

Dockerfile

1FROM ruby:2.7.1 2RUN apt-get update -qq && apt-get install -y nodejs postgresql-client imagemagick yarn 3ENV appname /sample 4RUN mkdir ${appname} 5WORKDIR ${appname} 6COPY Gemfile ${appname}/Gemfile 7COPY Gemfile.lock ${appname}/Gemfile.lock 8RUN bundle install 9COPY . ${appname} 10 11COPY entrypoint.sh /usr/bin/ 12RUN chmod +x /usr/bin/entrypoint.sh 13ENTRYPOINT ["entrypoint.sh"] 14EXPOSE 3000 15 16CMD ["rails", "server", "-b", "0.0.0.0"]

docker-compose.yml

yml

1version: "3" 2services: 3 db: 4 image: postgres 5 volumes: 6 - ./tmp/db:/var/lib/postgresql/data 7 environment: 8 POSTGRES_USER: postgres 9 POSTGRES_PASSWORD: postgres 10 web: 11 stdin_open: true 12 tty: true 13 build: . 14 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 15 volumes: 16 - .:/sample 17 ports: 18 - "3000:3000" 19 depends_on: 20 - db

Gemfile

1source 'https://rubygems.org' 2gem 'rails', '~>5'

entrypoint.sh

sh

1#!/bin/bash 2set -e 3 4# Remove a potentially pre-existing server.pid for Rails. 5rm -f /sample/tmp/pids/server.pid 6 7# Then exec the container's main process (what's set as CMD in the Dockerfile). 8exec "$@"

config/database.yml

yml

1default: &default 2 adapter: postgresql 3 encoding: unicode 4 host: db 5 username: postgres 6 password: 7 pool: 5 8 9development: 10 <<: *default 11 database: myapp_development 12 13 14test: 15 <<: *default 16 database: myapp_test

不可解なこと

Gemfile

1source 'https://rubygems.org' 2gem 'rails', '~>5'

と書いてあるのでRails5がインストールされるのかと思ったのですが、docker-compose run web rails new . --force --no-deps --database=postgresql実行後のGemfileを確認すると、Rails6をインストールしているように見受けられます。

Gemfile

12ruby '2.7.1' 3 4# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 5gem 'rails', '~> 6.0.2', '>= 6.0.2.2' 6# Use postgresql as the database for Active Record 7gem 'pg', '>= 0.18', '< 2.0' 8# Use Puma as the app server 9gem 'puma', '~> 4.1' 10# Use SCSS for stylesheets 11gem 'sass-rails', '>= 6' 12# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker 13gem 'webpacker', '~> 4.0' 14

Rails6はyarnが必須になるとどこかの記事で読んだので、Rails6になっていることに何か原因があるかもしれません。
とはいえyarnコマンドが実行できることから、yarnはインストールされているようです。
しかし、Dockerfileではyarnをインストールする記述はしていません。

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

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

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

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

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

technocore

2020/04/19 02:54

「実行しました」ばかりでその結果が全く書かれていません。
MajinBoo

2020/04/19 03:06 編集

どの実行結果が不足していますでしょうか。「実行」でページ内を検索するとエラーメッセージの項と試したことの項に実行したことが書かれていますが、エラーの項においてはエラーメッセージが、試したことの項においては箇条書きの見出しの下に記載している内容が実行結果である認識です。
bsdfan

2020/04/19 12:43 編集

> Dockerfileではyarnをインストールする記述はしていません。 とありますが、Dockerfileでインストールするように書かれています。 他にも思い違いがないか確認した方がいいかもしれません。 あと、イメージのリビルドしてますか? docker-compose up --build
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問