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

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

ただいまの
回答率

88.91%

ローカルディレクトリにrails newをしてもファイルが存在しない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 143

is02

score 15

公式ドキュメント通りに作っていったのですが、
docker-compose run web rails new . --force --no-deps --database=postgresqlを入力しても
ローカルディレクトリにappフォルダが生成されません。

docker-compose run web lsでコンテナ内にあるのか調べたのですが、生成されていませんでした。

考えられる原因はなんでしょうか?

公式ドキュメント
https://docs.docker.com/compose/rails/

追記

Starting aaaa_db_1 ... done
       exist  
      create  README.md
      create  Rakefile
      create  config.ru
      create  .gitignore
       force  Gemfile
         run  git init from "."
Initialized empty Git repository in /railbook/.git/
      create  app
      create  app/assets/config/manifest.js
      create  app/assets/javascripts/application.js
      create  app/assets/javascripts/cable.js
      create  app/assets/stylesheets/application.css
      create  app/channels/application_cable/channel.rb
      create  app/channels/application_cable/connection.rb
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/jobs/application_job.rb
      create  app/mailers/application_mailer.rb
      create  app/models/application_record.rb
      create  app/views/layouts/application.html.erb
      create  app/views/layouts/mailer.html.erb
      create  app/views/layouts/mailer.text.erb
      create  app/assets/images/.keep
      create  app/assets/javascripts/channels
      create  app/assets/javascripts/channels/.keep
      create  app/controllers/concerns/.keep
      create  app/models/concerns/.keep
      create  bin
      create  bin/bundle
      create  bin/rails
      create  bin/rake
      create  bin/setup
      create  bin/update
      create  bin/yarn
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/secrets.yml
      create  config/cable.yml
      create  config/puma.rb
      create  config/spring.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/application_controller_renderer.rb
      create  config/initializers/assets.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/cookies_serializer.rb
      create  config/initializers/cors.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_framework_defaults_5_1.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  lib
      create  lib/tasks
      create  lib/tasks/.keep
      create  lib/assets
      create  lib/assets/.keep
      create  log
      create  log/.keep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/apple-touch-icon-precomposed.png
      create  public/apple-touch-icon.png
      create  public/favicon.ico
      create  public/robots.txt
      create  test/fixtures
      create  test/fixtures/.keep
      create  test/fixtures/files
      create  test/fixtures/files/.keep
      create  test/controllers
      create  test/controllers/.keep
      create  test/mailers
      create  test/mailers/.keep
      create  test/models
      create  test/models/.keep
      create  test/helpers
      create  test/helpers/.keep
      create  test/integration
      create  test/integration/.keep
      create  test/test_helper.rb
      create  test/system
      create  test/system/.keep
      create  test/application_system_test_case.rb
      create  tmp
      create  tmp/.keep
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor
      create  vendor/.keep
      create  package.json
      remove  config/initializers/cors.rb
      remove  config/initializers/new_framework_defaults_5_1.rb
         run  bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle
as root will break this application for all non-root users on this machine.
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "railties":
  In snapshot (Gemfile.lock):
    railties (= 5.1.5)

  In Gemfile:
    rails (~> 5.1.5) was resolved to 5.1.5, which depends on
      railties (= 5.1.5)

    sass-rails (~> 5.0) was resolved to 5.1.0, which depends on
      railties (>= 5.2.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "sprockets":
  In snapshot (Gemfile.lock):
    sprockets (= 4.0.2)

  In Gemfile:
    sass-rails (~> 5.0) was resolved to 5.0.7, which depends on
      sprockets (< 4.0, >= 2.8)

    rails (~> 5.1.5) was resolved to 5.1.5, which depends on
      sprockets-rails (>= 2.0.0) was resolved to 3.2.1, which depends on
        sprockets (>= 3.0.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

フォルダの名前を「myapp」以外にすると、このようなログが出力されます。
myappの部分をすべて任意の名前のフォルダ名に変更したのですが、なぜこのような現象が起きるのでしょうか。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • y_shinoda

    2020/07/04 12:18

    コマンド実行したときの標準出力、エラーメッセージを
    次の記法で追記お願いします:

    ```console
    ここに記載
    ```

    キャンセル

  • y_shinoda

    2020/07/04 12:20

    上記はこちらではなく質問欄に追記お願いします

    キャンセル

  • is02

    2020/07/04 19:22

    ご返信が遅くなってしまい、大変申し訳ございません。
    今、追記いたしました。
    また、公式ドキュメントの通り、フォルダ名を「myapp」にして実行した場合は問題なくファイルが出現しました。

    キャンセル

回答 1

checkベストアンサー

0

元の回答

参照している公式ドキュメントのすぐ下に書いてあるように、
フォルダは生成されません
ファイルは docker-compose.yml などと同階層に作成されます

Quickstart: Compose and Rails | Docker Documentation

$ ls -l
total 64
-rw-r--r--   1 vmb  staff   222 Jun  7 12:05 Dockerfile
-rw-r--r--   1 vmb  staff  1738 Jun  7 12:09 Gemfile
-rw-r--r--   1 vmb  staff  4297 Jun  7 12:09 Gemfile.lock
-rw-r--r--   1 vmb  staff   374 Jun  7 12:09 README.md
-rw-r--r--   1 vmb  staff   227 Jun  7 12:09 Rakefile
drwxr-xr-x  10 vmb  staff   340 Jun  7 12:09 app
drwxr-xr-x   8 vmb  staff   272 Jun  7 12:09 bin
drwxr-xr-x  14 vmb  staff   476 Jun  7 12:09 config
-rw-r--r--   1 vmb  staff   130 Jun  7 12:09 config.ru
drwxr-xr-x   3 vmb  staff   102 Jun  7 12:09 db
-rw-r--r--   1 vmb  staff   211 Jun  7 12:06 docker-compose.yml
-rw-r--r--   1 vmb  staff   184 Jun  7 12:08 entrypoint.sh
drwxr-xr-x   4 vmb  staff   136 Jun  7 12:09 lib
drwxr-xr-x   3 vmb  staff   102 Jun  7 12:09 log
-rw-r--r--   1 vmb  staff    63 Jun  7 12:09 package.json
drwxr-xr-x   9 vmb  staff   306 Jun  7 12:09 public
drwxr-xr-x   9 vmb  staff   306 Jun  7 12:09 test
drwxr-xr-x   4 vmb  staff   136 Jun  7 12:09 tmp
drwxr-xr-x   3 vmb  staff   102 Jun  7 12:09 vendor

原因

Dockerfile:

WORKDIR /myapp

docker-compose.yml:

      volumes:
      - .:/myapp

コマンド:

rails new .

追記

フォルダの名前を「myapp」以外にすると、このようなログが出力されます。
myappの部分をすべて任意の名前のフォルダ名に変更したのですが

どこかで書き換えを誤っているものと思われます

すべての箇所を正確に書き換えればファイルは出力されます
以下に myapp をすべて hello-world に書き換えて実行した結果を示します

Dockerfile:

FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
RUN mkdir /hello-world
WORKDIR /hello-world
COPY Gemfile /hello-world/Gemfile
COPY Gemfile.lock /hello-world/Gemfile.lock
RUN bundle install
COPY . /hello-world

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]

entrypoint.sh:

#!/bin/bash
set -e

# Remove a potentially pre-existing server.pid for Rails.
rm -f /hello-world/tmp/pids/server.pid

# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"

docker-compose.yml:

version: '3'
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/hello-world
    ports:
      - "3000:3000"
    depends_on:
      - db

コマンド:

$ docker-compose run web rails new . --force --no-deps --database=postgresql
Creating network "test-rails_default" with the default driver

---略---

Successfully built fe37ff08edcf
Successfully tagged test-rails_web:latest
Starting test-rails_db_1 ... done
       exist  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
       force  Gemfile
         run  git init from "."
Initialized empty Git repository in /hello-world/.git/
      create  package.json
      create  app
      create  app/assets/config/manifest.js

---略---

      create  tmp/storage
      create  tmp/storage/.keep
      remove  config/initializers/cors.rb
      remove  config/initializers/new_framework_defaults_5_2.rb
         run  bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Using rake 13.0.1

---略---

Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from chromedriver-helper:

  +--------------------------------------------------------------------+
  |                                                                    |
  |  NOTICE: chromedriver-helper is deprecated after 2019-03-31.       |
  |                                                                    |
  |  Please update to use the 'webdrivers' gem instead.                |
  |  See https://github.com/flavorjones/chromedriver-helper/issues/83  |
  |                                                                    |
  +--------------------------------------------------------------------+

Post-install message from sass:

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

         run  bundle exec spring binstub --all
* bin/rake: Spring inserted
* bin/rails: Spring inserted

ファイルの確認:

$ ls -l
total 35
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 app
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:58 bin
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 config
-rw-r--r-- 1 shinoda 197121  130 Jul  4 19:57 config.ru
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 db
-rw-r--r-- 1 shinoda 197121  377 Jul  4 19:56 docker-compose.yml
-rw-r--r-- 1 shinoda 197121  498 Jul  4 19:55 Dockerfile
-rwxr-xr-x 1 shinoda 197121  207 Jul  4 19:55 entrypoint.sh
-rw-r--r-- 1 shinoda 197121 2228 Jul  4 19:57 Gemfile
-rw-r--r-- 1 shinoda 197121 5324 Jul  4 19:58 Gemfile.lock
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 lib
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 log
-rw-r--r-- 1 shinoda 197121   69 Jul  4 19:57 package.json
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 public
-rw-r--r-- 1 shinoda 197121  227 Jul  4 19:57 Rakefile
-rw-r--r-- 1 shinoda 197121  374 Jul  4 19:57 README.md
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 storage
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 test
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 tmp
drwxr-xr-x 1 shinoda 197121    0 Jul  4 19:57 vendor

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/04 11:08 編集

    ご回答ありがとうございます。
    そのファイルが生成されないです。workdirで書いてるのはmyappフォルダの中にdocker-compose.ymlなどが入っていて、実行すると同じ階層にファイルなどが生成されるイメージなのですが、生成されないので困っております。

    キャンセル

  • 2020/07/04 12:45

    質問への追記・修正、ベストアンサー選択の依頼 を投稿しました、
    ご確認おねがいします

    キャンセル

  • 2020/07/04 21:32

    追記ありがとうございました。
    同じようにやったら正常に実行されました。
    ありがとうございました

    キャンセル

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る