Create and publish CustomersDot images optimized for CI job
Problem
Currently We use docker-compose
setup to create all necessary services. App code is mounted through a docker volume that doesn't get copied into the image. This approach is great for local development by being able to live load changes without rebuilding the image
However using this approach in CI, building image and provisioning CDot app becomes necessary steps for all parallel jobs that require the CDot container. Due to the inefficient setup we currently setup one single job for e2e tests rather than 4 parallel jobs. The delays in feedback time could be as long as 1.5 hours.
Proposal
- Build and publish a CDot image that contains the code change in
build
phase in MR, so that jobs in later stage can pull the image and reuse it. - Spin up necessary services for web app like
web
,webpacker
in single container - The image should have all necessary dependencies installed. Ideally have prepared PostgreSQL data copied over, or pre-seeded through postgres service.
Edited by Chloe Liu