activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John D. Ament" <johndam...@apache.org>
Subject [DISCUSS] Docker Integration (Regular ActiveMQ & ActiveMQ Artemis?)
Date Thu, 01 Sep 2016 01:17:23 GMT
All,

I wanted to bring up the topic of how to do docker integration.  There's
some discussions I saw pop up on both the regular ActiveMQ distribution as
well as the Artemis project.  This started from a potential donation to
Artemis to add a dockerfile (its apparently pretty popular on dockerhub -
https://hub.docker.com/r/vromero/activemq-artemis/ )

I've gotten some concrete information from infra.  There's two ways we do
docker integration at the ASF - automatic builds to dockerhub or manual
builds to bintray.  The problem with the dockerhub approach is that its
based on git tags or pushes to branches.  We can setup some rules around
what does or does not get pushed, but ultimately its all static contents.
Its also manual only.  In talking with infra, there's some stuff that can
be done to retroactively add builds, or replace contents, but its nothing
too robust.  The bintray approach seems to be the stronger option though.
Its based on bintray's APIs, meaning we can push during a release the
artifacts up to bintray.  I believe there is syncing to dockerhub as well,
so by pushing (as a part of a release) to bintray it could sync the docker
container up to the central hub.  It does give the PMC better control over
what goes where, and would allow ActiveMQ to self-manage the release
process of the containers.

One interesting thing.  The main way to integrate into a build is to use
the docker-maven -plugin (since we're already using maven),
https://github.com/spotify/docker-maven-plugin .   This would allow pushing
based on the dockerfile, and combined with our normal pom files.  It also
means it could be fully automated as a part of the maven release process
which is pretty nice.

I will also point out that there are some concerns over a handful of the
integration strategies out there, so unfortunately the data is a bit jagged
so far.  We don't want to have a docker container that does a build as a
part of its spin up.  We also don't want to have pre-release software out
on docker containers, similar to the usage of maven central (for releases
only) but having a nexus based repository for snapshots for devs who want
to try the release early on.

So I'm putting all this out there (and didn't think this was going to end
up being such a long email!).  I want to understand from the broader group
what type of integration strategy should be used.

John

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message