ポンコツ.log

ひよっこエンジニアのちょっとしたメモ。主に備忘録。たまに雑記。

【Docker】Rails環境の構成をテンプレート化してみた

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

サービス毎にディレクトリを作って(テンプレートの場合だと、mysqlrails)、Dockerfileやプロジェクトディレクトリなどのそのサービスに関わるものは、それぞれサービスのディレクトリに中に格納するようにしています。
プロジェクトは docker-dir > rails > project の中で git clone git@github.com:hoge/piyo.git .

DBのユーザ、パスは .env ファイルの中で定義して、開発環境だけで使う想定なので、そのままgit管理。
doc: Environment variables in Compose > The “.env” file

今のところ特に問題も起きていないし、不都合も特にないものの、これがベストかと言われると🤔なところ。
いろんな「これが良さげ!」を見てみたいこの頃です。