docker-compose.ymlを書いたら

What

DBを変えてみたり、バージョンを変えてみたりして、アプリが動くかを確認するのに、Dockerが使えそうです。

実際に構成を書いた後、どうするかをまとめておきます。

Do

docker-composeコマンドを実行する前に

既存のアプリを使うため、git cloneしておきます。その後、Gemfile.lockの "中身を" 削除しておきます (削除しておかないと、以下のようなbundlerのバージョン関係で面倒臭いエラーが発生します)。

You must use Bundler 2 or greater with this lockfile.
ERROR: Service 'web' failed to build: The command '/bin/sh -c bundle install' returned a non-zero code: 20

既存のアプリ内にDockerfile, docker-compose.ymlを作成し、作りたい環境をコード化します。

注意点として、DBのuser, passwordを既存のアプリと合わせる必要があります。

環境をビルド

ファイルを作成したら、以下のコマンドで環境を作ります。

$ docker-compose build

次に、DBとTablesを作成すれば、docker-compose upでコンテナを作成できます。

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

好きなポートと接続したり、volumeを使うことで、開発環境としても使用できます。