はじめに
私は、Arch Linuxをインストールして1カ月くらい経つぐらいの人です。Arch Linuxの知識ほぼないです Dockerについても今回初めてやるので、全く知識がない状態の人がDockerやってみたので、おかしいところが少々あるかもしれないので、よろしくお願いします。
私が開発した環境
種類 | version |
---|---|
使用OS | Arch Linux |
Docker | 19.03.4 |
Ruby | 2.5.7 |
Rails | 5.2.3 |
rbenv | 1.1.2 |
実現したかったこと
ローカル上のRuby,RailsのバージョンをDockerコンテナの中のバージョンと揃えて、開発をすること。
試してみたこと
- rbenvを使って、Rubyのバージョンを切り替える。
- バージョンを変えても適用されないなどと、環境がおかしくなり、断念しました。
- dockerコンテナの中で、開発をすべて行う(?)
- railsコマンドを書き換えてdockerコンテナのバージョンで作成するように書き換えたら、うまくできました。
私なりに、やって正解だったことをまとめます。
やったこと
rails
コマンドをそのまま打ち込むとローカルのRuby,Railsのバージョンが適用されてしまうため、頭にかならず,docker-compose run web
とつけるとDockerコンテナ内のバージョンが適用されるので、バージョンのエラーなどが起きなくなり、正常に作成できます。
注意すること
また、何回も同じポート番号を指定してしまうと、重複エラーが出るので、ポート番号に気を付けましょう!間違えた場合は、
docker ps
コマンドで、今動いてるコンテナを確認して、docker stop コンテナ名(または、$(docker ps))
コンテナを止めてあげないと、削除することができないので、気を付けます。止めた後、docker rm コンテナ名
でコンテナを削除しましょう。また全削除したい場合はコンテナ名
を$(docker ps -a)
とすると今あるコンテナをすべて削除することができます。
最後に
rbenvを駆使してバージョン問題に取り組むことも重要ですが、
コンテナ技術をつかえば違う選択肢もあるのかな、と感じました。
dockerコンテナわかると、消したり作ったりするの楽しくなるんでよかったら、やってみてください!