Thank you all who thoughtfully responded to this proposal. This is a summary as I understood it and my comments regarding these points.
(1) Qpid community is in favour of creating and maintaining docker images for cpp/java brokers and dispatch router. OS choice is less important, as long as the user can connect to the broker/router port. We only need to support one OS choice. I think this is a good start. It covers a use case when someone wants to test or deploy client apps against broker/router conveniently running as a docker service. I think there might be another use case for those users who want to develop client apps in a known environment with client libraries already installed for them to work with. I think the OS choice is important to these users because they may have a preference/better knowledge of this particular OS. Please consider this use case. (2) Docker images should be of minimal size. As a concept, I fully agree with it. However, community support for official images also makes sense to me. These images go through review and testing, as well as, get patches for CVEs. There is a whole infrastructure in place in Fedora to build docker images, etc following best practices from OCI. Official images range in size between 120 to 200 mb, and have 10+ mil of downloads, so the size does not appear to be an obstacle to adopting them. It is my opinion that future official images will evolve to be better aligned with how they are used, for example "server" and "workstation", etc. REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu latest ebcd9d4fca80 6 weeks ago 117.9 MB docker.io/debian latest e5599115b6a6 5 months ago 123 MB docker.io/centos latest 67591570dd29 6 months ago 191.8 MB docker.io/fedora latest a1e614f0f30e 6 months ago 197.1 MB We can also modify the base image to remove some items if we think they are not needed. My personal preference is to start with fedora image because this distribution has latest upstream releases for qpid packages, and I am the maintainer for a number of these packages. Fedora community is also working on its own docker registry (it will have stable and test registries), has koji support for building images and guidelines for naming and versioning them. (3). What upstream releases will be dockerised? I would like to propose to start with latest released version. We will maintain at most 1 version at any time. All code necessary to create these images should be included in the upstream source repository starting with the next release. We will provide security patches for it as needed (and possibly will need patch releases). I am not sure if it will be possible to remove older releases from docker registries (TBD). (4) What will be used to configure docker images? We can use env to configure brokers/router, similar to what was done here: https://hub.docker.com/r/scholzj/qpid-cpp/ (courtesy of Jakub Scholz). References: #Changes/Layered Docker Image Build Service https://fedoraproject.org/wiki/Changes/Layered_Docker_Image_Build_Service#Policies_and_guidelines #Fedora Docker Layered Image Build Service by Adam Miller https://blog.openshift.com/wp-content/uploads/Introducing-Docker-Layered-Image-Build-Service.pdf #OpenShift Commons Briefing #57: Fedora Docker Layered Image Build Service by Adam Miller https://www.youtube.com/watch?v=HHm0L6Fw5nk #Layered Image Build System https://docs.pagure.org/infra-docs/sysadmin-guide/sops/layered-image-buildsys.html #Atomic Reactor: Python library with command line interface for building docker images. https://github.com/projectatomic/atomic-reactor #Fedora Docker Layered image build service now available blog https://communityblog.fedoraproject.org/fedora-docker-layered-image-build-service-now-available/ #Example of container build: cockpit https://koji.fedoraproject.org/koji/packageinfo?packageID=17959 #Container:Guidelines https://fedoraproject.org/wiki/Container:Guidelines #Fedora container repo https://src.fedoraproject.org/cgit/container/ #Building a modular Linux OS https://docs.pagure.org/modularity/ #projectatomic/container-best-practices https://github.com/projectatomic/container-best-practices #Container Best Practices http://docs.projectatomic.io/container-best-practices/ #Red Hat Image Naming Policy https://github.com/projectatomic/ContainerApplicationGenericLabels/blob/master/vendor/redhat/names.md #Guidelines for Naming Fedora Packages (including docker images) https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines #OCI: open container initiative https://www.opencontainers.org/ #Changes/FedoraDockerRegistry https://fedoraproject.org/wiki/Changes/FedoraDockerRegistry #Creating minimal Docker images from dynamically linked ELF binaries http://blog.oddbit.com/2015/02/05/creating-minimal-docker-images/ #Why docker images should be small https://opensolitude.com/2015/05/13/docker-images-should-be-small.html Regards, Irina.
