0
0

docker, docker-compose を使って rails 開発を行うときのコマンド

Last updated at Posted at 2024-09-22

docker コマンド一覧

(1) 一覧

$ docker ps -a
$ docker ps
$ docker images

(2) ログ

$ docker logs <container_id>

(3) 構築

$ docker-compose stop
$ docker-compose down
$ docker-compose build
$ docker-compose up

(4) 破壊

$ docker container prune
$ docker images prune -a
$ docker images prune
$ docker system prune -a
$ docker volume prune

rails コマンド

(1) ファイル生成

$ docker-compose run web bundle exec rails generate model Hello
$ docker-compose run web bundle exec rails generate controller Welcome index show

※ ファイルが生成されたという成功ログが出ているのにも関わらず、ファイルが実際に生成されない問題が起きたら、Dockerfile と docker-compse.yml のマウントするディレクトリ名が一致していないミスを起こしているかもしれない。
私はこの記事 でこれが原因であることに気が付いた。

(2) DB

$ docker-compose run web rails db:create
$ docker-compose run web rails db:migrate
$ docker-compose run web rails db:reset

(3) コンソール

$ docker-compose run web rails dbconsole
$ docker-compose run web rails console

※ コンソールが起動しているときは、docker-compose down が機能しないので、コンソール上で exit を使って抜けてください。

(4) A server is already running. Check /my_app/tmp/pids/server.pid. エラー
docker-compose down ではなくて、CTRL+C でコンテナを停止すると、間違いなく 3000 ポートで起動してないのにも関わらず、再び 3000 ポートを使った起動ができない問題が起きる。
/my_app/tmp/pids/server.pid というキャッシュファイルが残っているのが原因みたい。

$ docker-compose up
...
A server is already running. Check /my_app/tmp/pids/server.pid.
...
$ lsof -i :3000
$ docker-compose run web rm /my_app/tmp/pids/server.pid
$ docker-compose up
0
0
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
0
0