ing-bank / scruid

Scala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes.
Apache License 2.0
115 stars 29 forks source link

Include all Dockerfiles in the project #79

Closed anskarl closed 4 years ago

anskarl commented 4 years ago

I am thinking that it may be practical to include as part of the project all Dockerfiles of images that are used in tests and additionally push all of them under a common namespace in Docker Hub (e.g., scruid/druid-docker, scruid/openresty and scruid/clusterf-chaos-proxy) or in GitHub Package Registry (beta) (tagged as docker.pkg.github.com/ing-bank/scruid/IMAGE_NAME:VERSION).

Dockerfiles will be part the project, will evolve with the project and publishing of the images can become a part of the CI process. Furthermore, when a new feature requires changes to some image (e.g., new version of Druid or some extension) the required change in the Dockerfile can be part of the corresponding PR.

A POC of such change can be found in https://github.com/anskarl/scruid/commit/1917a99df73d6bb7fbea525c0a408d5837093e38 in which:

What is missing for the POC:

What do you think? Do you find any benefits of making such an addition to the project?

barend commented 4 years ago

I think this is useful for the robustness of our build and control of our supply chain. On the downside, it makes it a bit more work to update our dependencies, but I think it's a net positive.

I would prefer to use the GitHub Package Registry because it's one fewer third-party.

anskarl commented 4 years ago

In https://github.com/anskarl/scruid/commit/7566fe6f2098b31859f57f9ceb22273bb143371e I've added GitHub Actions workflow for building the project similar to the current implementation that uses CircleCI, but the main difference is that it can also build Docker images for all the required external services (e.g., Druid) and pushed to GitHub Package Registry.

As it is also included in the commit message, the changes are outlined below:

With GitHub Actions, the build flow can be handled without CircleCI and it is well integrated with GitHub Package Registry.

Please note that the images in docker-compose in https://github.com/anskarl/scruid/commit/7566fe6f2098b31859f57f9ceb22273bb143371e are pointing to GitHub Package Registry, therefore the automated tests in CircleCI are failing.

krisgeus commented 4 years ago

@anskarl this one can be closed right?

anskarl commented 4 years ago

Yes, I will close it.