activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hiram Chirino <hi...@hiramchirino.com>
Subject Re: [DISCUSS IDEA] artemis create --docker
Date Thu, 01 Oct 2015 12:17:04 GMT
At best having a 'create --docker' command which customizes the
instance configuration to be more docker friendly might be as good as
it gets.  For example 'create --docker' might create a config which
tries to read more settings from the env vars.  It could also setup
logging so it all goes to std out instead of to files.

On Thu, Oct 1, 2015 at 1:23 AM, Victor Romero <victor.romero@gmail.com> wrote:
> Llet me try to clarify how docker works and which are its expectations:
>
> There are three outstanding moving pieces in docker:
>
>    - *Docker container*, an instance of a docker image.
>    - *Docker images* are *self contained images* of a piece of software,
>    its dependencies, end everything else down to the operating system.
>    - *DockerFiles*, the recipe to generate a docker image.
>
> Two important best practices
> <https://docs.docker.com/articles/dockerfile_best-practices/> regarding
> creation of containers are:
>
>    - Containers should be ephemeral, it can be stopped and destroyed and a
>    new one built and put in place with an absolute minimum of set-up and
>    configuration.
>    - Run only one process per container.
>
> Docker containers are customized tipically in two ways:
>
>    - Changing some simple value, like the number of threads of a listener:
>    with a passed environment property, i.e: -e HTTP_LISTENERS=64
>    - Changing actual files/directories both for input/output from/to the
>    image: with mounted volumes
>    <https://docs.docker.com/userguide/dockervolumes/>. An example of out
>    would be mounting a logs directory and an example for input, we could say,
>    mounting the apps directory of tomcat, i.e: -v /webapp training/webapp
>
> There is a repository of docker images, similar to what maven central is
> for maven, and this is dockerhub <https://hub.docker.com/>. The docker
> command like has full support for it. Software providers can provide an
> official docker image just like in maven central. On example could be the
> official RabbitMQ <https://hub.docker.com/_/rabbitmq/> docker image that
> has been there for a while. Of course users do prefer official images but
> they tipically coexist with a bunch of other community images.
>
> If we don't go creative, the tipical case for a docker image is just an
> image that allows configuration to some extent using environment properties
> and some volumes mounted. This is exactly what I tried to accomplish the
> image <https://hub.docker.com/r/vromero/activemq-artemis/> I recently
> uploaded to dockerhub.
>
> *All this said, is there space for improvement?*
>
> I'm afraid I kind of disagree with you in believeing there is value on
> the artemis
> create phase. There is very little  customization at that point and very
> little to no value at all would be added by generating a docker image at
> this phase, i.e: Why not just have an official docker image published in
> dockerhub that would have the very same effect with much less tooling and
> non standard procedures involved?
>
> *What about creating an image of an already customized instance?*
>
> This would be having a base docker image all ready except for the artemis
> intance, and then create an image with the instance on top of it.
>
> I think there is some value on this but to be completely honest, this goes
> against the common use of docker. The software and the very basic
> configuration tipically reside on the image, and the hard core
> configuration comes in the form of a mount point.
>
> I'm on the fence around this one, perhaps there is some value, but at this
> point I would rather say that it's better to not to go against the flow and
> do something that is considered incorrect by the docker community.
>
> *What would I personally do (docker related) with artemis:*
>
> Personally I would create one or two images, the one I already created and
> potentially another one customized for clustering.
>
> I would pack this image, and tomcat and one of the artemis examples and
> create a docker compose <https://docs.docker.com/compose/> image.
>
> Then I would publish this as official image
> <https://github.com/docker-library/official-images/tree/master/library> to
> dockerhub (I imagine this is not easy bureocracy wise) just like rabbit,
> ubuntu, wordpress, mariadb and others and I would create oficial
> documentation along with the rest of the documentation.
>
> If someone has a customized artemis instance that he wants to shift to
> docker, he can just create a docker container from the official image and
> mount there the etc directory.
>
> This is just a personal oppinion, I but hope it helps.
>
>
>
>
>
>
>
>
> 2015-09-30 10:58 GMT-07:00 Clebert Suconic <clebert.suconic@gmail.com>:
>
>> Sorry, it took me a while to digest this
>>
>> > What do you think? Would perhaps make more sense to have someting in a
>> jar
>> than can be invoked from bash/cmd?
>>
>>
>> Maybe I'm getting confused because I would need more time with docker...
>>
>> We have the ./artemis create method, I would prefer to have things over
>> there.. as it makes simpler and more accessible to users...
>>
>>
>> If someone did anything around it, maybe we could then import it on the CLI
>> to make it simpler...
>>
>> Maybe part of create wouldn't make sense.. but maybe a docker CLI... makes
>> more sense maybe.
>>
>>
>> ./artemis docker ... options...
>>
>>
>> which is a simple thing to be implemented through OUR CLI package.
>>



-- 
Hiram Chirino
Engineering | Red Hat, Inc.
hchirino@redhat.com | fusesource.com | redhat.com
skype: hiramchirino | twitter: @hiramchirino

Mime
View raw message