Open sherzberg opened 10 years ago
Just saw this ticket: https://github.com/hwuethrich/docker-images/issues/8. It is my suggestion to have different containers for each agent just to keep containers small and to aid in reducing dependency conflicts. Thoughts?
@sherzberg Thanks for the suggestion and sorry for the late response (I'm currently travelling)!
As you discoverd yourself, I once had the image named bamboo-agent-ruby but decided to merge everything into one single container to keep things simple. I'm still not sure which is the better way to do it.
I decided to merge the images because I thought it would get too complicated when more languages, libraries and DB systems are added (too many possibilities to combine them). Even if you had separate containers for Phython, Perl, PHP etc, you would still have to add MySQL, PostgreSQL, Sqlite etc. to all of them because people might not use the same DB as you.
Also, if you are working in a company using all these programming languages at the same time, I think it is more convinient if you have one single type of container because you don't have to think about how many agents you want to allocate to a single language and it's more efficient to distribute the load.
I hope that explains my thoughts? What do you think? Anyways, your PRs to add more languages would be more than welcome! :)
Hi @sherzberg, any comments on this one? I'd still be interested in your PRs if you are planning to add support for other languages :)
@hwuethrich unfortunately, I am not on the team that is handling our bamboo infrastructure anymore and am not sure that team is willing to contribute. I am still however interested in helping you out, but only in a limited fashion.
That being said, my thoughts before were to isolate potentially conflicting language/package versions. Not sure if I know of any current issues with this setup and my works build environment, so maybe investing the time to split them out is overkill and unneeded.
I have always wanted a way to be able to have a build declare what docker image they needed. Kind of like drone.io https://github.com/drone/drone. Thoughts on the ability for bamboo to do this?
@sherzberg One possible solution to define build plan dependencies for versions would be to integrate in Remove Agent Configuration files to define the capabilities of the docker container.
We do something similar with Bamboo On-Demand and EC2 instances which define their capabilities and adding capability requirements on build plans with the on-demand Bamboo successfully to allow routing of builds to their appropriate agent.
Thanks for some great containers! Would you be willing to change your bamboo-agent to something like bamboo-ruby-agent? I'd like to send some pull requests for more agent types where I could just clone the ruby agent. Specifically one for python, perl, and php. Thoughts?