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

新規プロジェクトをrailsで作成中、ズルしたら痛い目にあった

ある日

「あー!デプロイまで終わった!」
「次はいよいよ、ポートフォリオ作ってみようかなー!」
「うわ、またあの環境構築からか。。。面倒だなー」
「前に作ったサンプルサプリで設定したdocker-composeとか使おうかな。」
。。。。
「おおー、docker-compose build 、up、rails newまで早いな!」
「よしこのまま一回localhost接続みてみるかー。。ぽちぽちっと」
「あれ?エラーか。なんでだろ?」
「前みたいな設定にしてるはずだけど、何が違うんだろ??」
「あれ、publicの中身ないぞ!tmpも空っぽだ!これじゃnginxソケット通信できないぞ!どうしよーー」
「はぁ、諦めて一から環境構築するかああ。」

何が問題だったのか?

1:無闇やたらにVOLUME使っていた。

2:初期ページのまま、production環境でlocalhost接続していた!

こんなこと普通ならないですよねー。笑
なぜこうなったかというと
* rails環境構築を省こうとした。
* 楽をしたかった。
この2点だけでした!

今回はrailsの復習にもなりましたので、ここに記事を残して2度と同じミスがないようにしようと思っています!
では、本編どうぞー。

1:無闇やたらにVOLUME使っていた。

このように、以前に作成したことがあったプロジェクトからrailsのdockerfile
docker-compose.yml
nginxのdockerfile
をコピペして使用したのですが、
VOLEME public
VOLUME tmp
がrailsのdockerfileに記述したままでして、
結果rails newしても、publicとtmpの中身が生成されなかったです。
docker-composeは起動していましたが、localhostに接続してもnginxが参照するsocketsはないし、welcomepageはそもそもないし。で、、

そりゃエラーですよね!笑

解決方法

VOLEME public
VOLUME tmp
railsのdockerfileから記述を削除し、
docker-compose buildをやり直した所、無事解決にいたりlocalhost接続できました。
[image:26B581B4-1DFB-4C9D-97FE-8BE8016A13BF-12763-00005F9EE8A93718/yay.png]

初期ページのまま、production環境でlocalhost接続していた!

これは、誠にお恥ずかしい話ですが
developmentモードでwelcomeページが表示されたので、productionモードでも起動確認がしたくなり、初期ページのままいじってました。
当然docker-compose upしてもlocalhostにwelcomeページなんか出ないはずなのに(welcomepageがあるのはdevelopmentモードのみ!)
あれ?出ないなぁと思っていました!

解決策

サンプルページを作成

docker-compose run app bash rails g controller home index

接続を確認

localhostで無事表示される。

疑問点

dockerfileのVOLEME public
VOLUME tmp記述が、なぜファイルの中身を生成しなかったのか、まだわかってないので調べます!
分かる方いましたら教えてください!

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした