Here's a few points from the peanut gallery: in general I find Docker multiarch pretty useful, but at the same time its not like having a schema like: bigtop/<img_type>:<version_prefix>-<distro>-<distro_version>-<arch_name> wouldn't achieve the same. I'd say go with what feels simpler.
As for scripts that create those -- that's just puppet in: https://github.com/apache/bigtop/tree/master/bigtop_toolchain So your Dockerfile is super-straightforward -- start with the base, add puppet via: https://github.com/apache/bigtop/blob/master/bigtop_toolchain/bin/puppetize.sh and run the puppet. In fact, I believe that this bakes the images (unless it bitrotted somehow): https://github.com/apache/bigtop/blob/master/docker/bigtop-slaves/build.sh Thanks, Roman. On Sun, May 27, 2018 at 7:55 PM, Jun HE <ju...@apache.org> wrote: > Thanks for comments, Evans. > > There should not be much efforts to enable multi-arch. The question is how > we plan to support it in Bigtop. > > I can think of several items to discuss for this feature: > 1. Docker images name conventions: > For this, I'd suggest to using this: > * for actual underlying docker image running on specific platform, name > it as: > bigtop/<img_type>:<version_prefix>-<distro>-<distro_version>-<arch_name>, > say: bigtop/puppet:trunk-debian-9-amd64, > bigtop/slaves:1.3.0-fedora-26-aarch64 > * for virtual image, name it as: bigtop/<img_type>: > <version_prefix>-<distro>-<distro_version>, > say: bigtop/puppet:trunk-debian-9, bigtop/slaves:1.3.0-fedora-26 > 2. How to create these images/manifests > I didn't find any cmds/scripts in Bigtop source to do the docker hub > uploading work. So I guess we're doing it manually for now. If we're going > to use multi-arch, we need to upload the virtual image's manifest file to > docker hub besides those arch dependent images. > Docker cli has a cmd to do such work: docker manifest. But it is not in > distros' docker releases. And it is marked as "experimental" feature, user > needs to change docker settings to use it. See > https://docs.docker.com/edge/engine/reference/commandline/manifest/#description. > I created a shell script version ( > https://github.com/JunHe77/docker-manifest-sh) to do the same thing, use > same cmd syntax. Hope this can help. > 3. Update existing settings/yaml files to use the virutal distro image. > Once the images/manifests are ready in docker hub, we can update > existing settings/yaml files to use "virtual" bigtop images. This should > take too much efforts. And we'll get unified, beautiful code for different > archs. > > Pls raise your thoughts, questions, and etc. Once we settle these > workflows/specs down, I'm sure it will be ready before Sept. > > Thanks. > > 2018-05-28 1:45 GMT+08:00 Evans Ye <evan...@apache.org>: > >> I'd say this is a great idea. >> The only reason we haven't adopt multi-arch is because we started to adopt >> docker at early stage so there's no such feature then. >> >> Jun can you roughly estimate the effort? If we're going for it, we better >> have it ready in 1.3.0 before ApacheCon which is around September. >> >> >> 2018-05-17 17:19 GMT+08:00 Naresh Bhat <naresh.b...@linaro.org>: >> >> > On 17 May 2018 at 13:21, Jun HE <ryan.j...@gmail.com> wrote: >> > > Hi, guys, >> > > >> > > As bigtop has simplified the way to create docker images for distros, >> by >> > > BIGTOP-2922, I'm thinking of multi-arch docker images support to ease >> > > building/test/development. >> > > >> > > Multi-arch feature has been supported since 2017, you may check this >> > link: >> > > https://blog.docker.com/2017/11/multi-arch-all-the-things/ >> > > In simple words, multi-arch is a virtual image which contains several >> > > architecture dependent images. When user try to pull this virtual image >> > > dockhub will send back the actual image based on the architecture he is >> > > using. >> > > >> > > Use multi-arch will help: >> > > * development: user don't have to issue different cmd to pull >> > puppet/slaves >> > > images, "docker pull bigtop/slaves:trunk-debian-9" is enough instead of >> > "docker >> > > pull bigtop/slaves:trunk-debian-9-ppc64le" or "docker pull >> > > bigtop/slaves:trunk-debian-9-aarch64" >> > > * test: unified yaml file for same distro. refer example in >> > > provisioner/docker/config_* >> > > >> > > So how do you think? :) >> > >> > Thanks Jun for initiating the thread. >> > +1 this makes sense. Is there any reason why we have not consider for >> > using multi-arch images ? If anybody explains advantage/disadvantage >> > of using multi-arch docker image in bigtop, it will help us to >> > understand in a better way. >> > >> > > >> > > Regards, >> > > >> > > Jun >> > >>