LoginSignup
2
3

More than 3 years have passed since last update.

Docker コンテナ内のrailsコマンドが呼び出せなくなったのでメモ

Posted at

概要

docker環境で、
railsチュートリアルを進めていたら、
急に下記のようにrailsコマンドが呼び出せなくなったので、
対処方法をメモ

bash: rails: command not found

環境

こちらの記事を参考にrailsのdocker環境を構築
https://qiita.com/reflet/items/f73cac406760ee4ecc13

解決策

railsのDockerファイルに下記のようにパス通しを記載しrailsコマンドを呼び出せるようにした。

ENV PATH $PATH:/usr/local/src/bin

そもそもコマンドって?

我々が普段使っているcdlsなどは、魔法でもなんでもなく、全てプログラム
このプログラムを呼び出すための略称がコマンドという認識で良いと思います。

自分は、元々windowsユーザなのですが、Windowsユーザだと
exeファイルがイメージし易いかと思います。
C言語とかで、コマンドプロンプトにHelloWorldと表示するhellow.exeファイルを作成して、
hellow.exeをダブルクリックするとコマンドプロンプトが開きHelloWorldと表示されます。
lsコマンドだったらls.exeをダブルクリックしたら、ファイルのリストがコマンドプロンプト上に表示されるそんなイメージで自分はいます。
間違ってたらすみません。。。。

パスって?

コマンドが、プログラムということがわかりましたが、
パソコンは、そのプログラムが何処にあるか知りません。
hellow.exeがどのファイルに存在するのかパソコンは理解できないわけです。
そこで、PATHという環境変数に、コマンドは、このパスの配下にあるプログラムだよ
と教えてあげることで、パソコンが、どのファイルの配下にhellow.exeがあるか理解できるという仕組みです。
これが俗にいうパスを通すというやつです。

小学生の時に友人から、インストールって本質的には、パスを通すことなんだよって
言われて、その時は、何が何だかって感じでしたが、今となっては、なるほどって感じです。

環境変数って?

お使いのMacやWindowsに設定されている、変数です。
パソコンに設定されているもや、ログインしているユーザごとに設定されている変数もあります。

後書き

何故急にコマンドが呼び出せなくなったのか不明ですが、
コマンドってなんだっけパスとかなんだっけというLinuxの基礎知識を得るいい機会でした。

何か、間違ってることありましたら、優しくご指摘いただけますと幸いです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3