DockerでRailsの環境を作ろうとした時に、毎度構成に悩みます。
Railsプロジェクトの中に入れるのも、
- 本番をDockerで動かしていない時は不要なファイルになる
- Docker環境を捨てる時が来たらパッと捨てられるように分離したい
という気持ちがあるので、「どうしたもんかなぁ🤔」と構成を変えたりしていたのですが、毎度作り直したりも面倒なので、今のところしっくり来ている構成をテンプレートにしてみました。
docker-dir ├ .git ├ mysql │ ├ configs │ │ └ docker-entrypoint-initdb.d │ │ └ 01_init.sh │ └ data │ └ .gitkeep ├ rails │ ├ data │ │ └ .gitkeep │ ├ project │ │ └ .gitkeep │ └ Dockerfile ├ .env ├ .gitignore ├ docker-compose.yml └ README.md
GitHub - s-mori/rails_docker_template
サービス毎にディレクトリを作って(テンプレートの場合だと、mysqlとrails)、Dockerfileやプロジェクトディレクトリなどのそのサービスに関わるものは、それぞれサービスのディレクトリに中に格納するようにしています。
プロジェクトは docker-dir
> rails
> project
の中で git clone git@github.com:hoge/piyo.git .
。
DBのユーザ、パスは .env
ファイルの中で定義して、開発環境だけで使う想定なので、そのままgit管理。
doc: Environment variables in Compose > The “.env” file
今のところ特に問題も起きていないし、不都合も特にないものの、これがベストかと言われると🤔なところ。
いろんな「これが良さげ!」を見てみたいこの頃です。