Dockerの開発環境ではDockerの開発環境特有のコマンドでの操作が必要になりますが、スクリプト言語のコマンドをローカル環境で実行するときと同じコマンドで開発ができる方法を紹介します。
環境
Docker 19.03.8
Ruby 2.5
Rails 5.2
Dockerとローカルの開発環境で実行するときの違い
例えば以下のRuby on Railsの開発で用いられるコマンド
$ rails db:migrate
このコマンドをDockerで実行する場合
$ docker-compose run web rails db:migrate
このようなコマンドになります。
それ以外にも操作方法がありますが、Ruby on Railsで開発するならRubyやRailsの通常のコマンドの方が楽ですよね。その場合は以下の手順でコマンドを実行します。
Rubyの通常のコマンドで開発を行うための準備
Dockerを立ち上げます。
$ docker-compose start
コンテナ名を調べます。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9b19e00552e recipegram_web "entrypoint.sh bash …" 44 hours ago Up 11 seconds 0.0.0.0:3000->3000/tcp recipegram_web_1
975875c12c76 postgres "docker-entrypoint.s…" 46 hours ago Up 12 seconds 5432/tcp recipegram_db_1
コンテナ名を入れて下記のコマンドを実行します。
$ docker exec -it a9b19e00552e bash
そうするとこのように切り替わるのでこの状態で今回であればRubyやRailsの実行コマンドで開発が行えます^_^
root@a9b19e00552e:/myapp#