Help us understand the problem. What is going on with this article?

Dockerでコンテナのbashに入ってからコマンド打てなかった話

More than 1 year has passed since last update.

なんの話するの

MySQLでエラー頻発するようになって、
Dockerに移行しようと思い付き、
いまいじっているが。。

コンテナに対してbashを起動したあと、
何したらいいのかわからなかったので
備忘録としてまとめておく。

コンテナに対するbashとは?

ターミナルのこと。
そのコンテナ上で(=作業したいapp(コンテナ)に対して)ターミナルを起動させる。

イメージをビルドしたあと、

docker-composer run potepanec bash

を実行、これによりサービス名「potepanec」のコンテナに対してbash(ターミナル)が起動される。

その次僕は

root@a2953f92ffc3:/tmp`# bundle exec rails s

と打ったが

Usage:
  rails new APP_PATH [options]

Options:
      [--skip-namespace], [--no-skip-namespace]            # Skip namespace (affects only isolated applications)
  -r, [--ruby=PATH]                                        # Path to the Ruby binary of your choice
                                                           # Default: /usr/local/bin/ruby
  -m, [--template=TEMPLATE]                                # Path to some application template (can be a filesystem path or URL)
  -d, [--database=DATABASE]                                # Preconfigure for selected database (options: mysql/postgresql/sqlite3/oracle/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
                                                           # Default: sqlite3
      [--skip-yarn], [--no-skip-yarn]                      # Don't use Yarn for managing JavaScript dependencies
      [--skip-gemfile], [--no-skip-gemfile]                # Don't create a Gemfile
  -G, [--skip-git], [--no-skip-git]                        # Skip .gitignore file
      [--skip-keeps], [--no-skip-keeps]                    # Skip source control .keep files
  -M, [--skip-action-mailer], [--no-skip-action-mailer]    # Skip Action Mailer files
  -O, [--skip-active-record], [--no-skip-active-record]    # Skip Active Record files
      [--skip-active-storage], [--no-skip-active-storage]  # Skip Active Storage files
  -P, [--skip-puma], [--no-skip-puma]                      # Skip Puma related files
  -C, [--skip-action-cable], [--no-skip-action-cable]      # Skip Action Cable files
  -S, [--skip-sprockets], [--no-skip-sprockets]            # Skip Sprockets files
      [--skip-spring], [--no-skip-spring]                  # Don't install Spring application preloader
      [--skip-listen], [--no-skip-listen]                  # Don't generate configuration that depends on the listen gem
      [--skip-coffee], [--no-skip-coffee]                  # Don't use CoffeeScript
  -J, [--skip-javascript], [--no-skip-javascript]          # Skip JavaScript files
      [--skip-turbolinks], [--no-skip-turbolinks]          # Skip turbolinks gem
  -T, [--skip-test], [--no-skip-test]                      # Skip test files
      [--skip-system-test], [--no-skip-system-test]        # Skip system test files
      [--skip-bootsnap], [--no-skip-bootsnap]              # Skip bootsnap gem
      [--dev], [--no-dev]                                  # Setup the application with Gemfile pointing to your Rails checkout
      [--edge], [--no-edge]                                # Setup the application with Gemfile pointing to Rails repository
      [--rc=RC]                                            # Path to file containing extra configuration options for rails command
      [--no-rc], [--no-no-rc]                              # Skip loading of extra configuration options from .railsrc file
      [--api], [--no-api]                                  # Preconfigure smaller stack for API only apps
  -B, [--skip-bundle], [--no-skip-bundle]                  # Don't run bundle install
      [--webpack=WEBPACK]                                  # Preconfigure for app-like JavaScript with Webpack (options: react/vue/angular/elm/stimulus)

Runtime options:
  -f, [--force]                    # Overwrite files that already exist
  -p, [--pretend], [--no-pretend]  # Run but do not make any changes
  -q, [--quiet], [--no-quiet]      # Suppress status output
  -s, [--skip], [--no-skip]        # Skip files that already exist

Rails options:
  -h, [--help], [--no-help]        # Show this help message and quit
  -v, [--version], [--no-version]  # Show Rails version number and quit

Description:
    The 'rails new' command creates a new Rails application with a default
    directory structure and configuration at the path you specify.

    You can specify extra command-line arguments to be used every time
    'rails new' runs in the .railsrc configuration file in your home directory.

    Note that the arguments specified in the .railsrc file don't affect the
    defaults values shown above in this help message.

Example:
    rails new ~/Code/Ruby/weblog

    This generates a skeletal Rails installation in ~/Code/Ruby/weblog.

と出てきて、進まなくなった。

ふーん、けど見た感じrails newはいけなくもないのか。
→てことは(これから編集したい)アプリが認識されていない?
そもそもパスが違う?

たったのこれだけだった

root@a2953f92ffc3:/tmp$ bundle exec rails s

tmpってなんだよtmpって

root@a2953f92ffc3:/tmp$ cd ..

の結果、

root@a2953f92ffc3:/$

あ〜作業ディレクトリに入ってなかったのね。
bash起動したらtmpっていう作業フォルダじゃないとこに入っちゃったのか。

てなわけで

root@a2953f92ffc3:/$ ls
bin  boot  bundle  dev  etc  home  lib  lib64  media  mnt  opt  potepanec  proc  rails  root  run  sbin  srv  sys  tmp  usr  var

potepanecに入ろう

root@a2953f92ffc3:/$ cd potepanec
root@a2953f92ffc3:/potepanec$ ls
Dockerfile.dev  Gemfile  Gemfile.bak  Gemfile.lock  Gemfile.lock.bak  README.md  Rakefile  WITHOUTDOCKER.md  app  bin  config  config.ru  db  docker-compose.yml  docs  lib  log  node_modules  package.json  public  tmp  vendor

おーいつもの顔ぶれ!



てことで、ただ単に作業ディレクトリに移動してなかったってだけでした。

誰かの役に立てたら、と思って記事書いたけど、こんなん間違うの俺だけかも😂


おわり

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away