All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Monakhov <dmonakhov@openvz.org>
To: "Theodore Ts'o" <tytso@mit.edu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] Add dockerfile
Date: Fri, 19 Aug 2016 12:27:43 +0300	[thread overview]
Message-ID: <87eg5l6rcg.fsf@openvz.org> (raw)
In-Reply-To: <20160819052106.GC10888@thunk.org>

Theodore Ts'o <tytso@mit.edu> writes:

> On Fri, Aug 19, 2016 at 12:54:11AM +0400, Dmitry Monakhov wrote:
>> Dockerfile is good way to create build environments
>> Let's keep it as a reference build script.
>> 
>> XXX: Currently Ted does not have hub.docker account
>>      so this docker file points to my hub. Should be updated.
>
> I guess I'm a little confused about how this Dockerfile works.  First
> of all, says "From Debian", so I guess the idea is to be based on an
> unspecified version of Debian (why not debian:jessie?).  But then it
> has apt-get commands?  How does that work?
Yes, this is an official debian image https://hub.docker.com/_/debian .
plain 'debian' means 'debian:jessie', but you can change it to 'debian:sid'
This image already has apt-get  (otherwise it will be not very useful)
>
> And if the idea is to fetch a prebuilt docker image, and we're running
> it with docker run --privilege, I'm not sure what value using docker
> run is really providing.  We're not using the docker container
> features.   And typing
>
> docker run -i -t --privileged ... \
> 	"kvm-xfstests.sh --kernel /tmp/bzImage --update-files --update-xfstests-tar  smoke"
>
> Is just *awkward*.  The whole point is to let kvm-xfstests read the
> kernel from your ~/.config/gce-xfstests, so your work flow can be
> something like this:
>
Actually main idea is to have build environment for xfstests-bld development
plus automatic builds gives us CI. This is important because
xfstests-blk build is silently broken since May 30 due to 82c3a179
(fix proposed: https://github.com/dmonakhov/xfsprogs/commit/5dc7a0805d6b7a265863413a8e1b7acb191d5280)
But this was uncovered because most people do not build xfstests-bld
from scratch very often, we all too busy. Let's machine do that :)
In fact other good candidate for CI is https://travis-ci.com/

Once we have Dockerfile which encapsulates all dependencies
one can create xfstets-blk from scratch simply typing
$ docker build -t my-xfstests-bld-image --file Dockerfile
Or use precreated environment
$ docker pull XXX/xfstests-bld

Once image is created 
Log in to container and start hacking xfstest or e2fsprogs etc.
$ docker run -i -t XXX/xfstests-bld
$ emacs xfstest/tests/ext4/023 ....
$ kvm-xfstests --update-xfstest ext4/023
...

Or run push your kernel patches to container via bindmount
and then submit it to gce.
$ docker run -v my-stuff:/my-stuff XXX/xfstests-bld \
                git clone kernel.git && \
                cd kernel && \
                git am -s /my-stuff/patch.mbox && \
                make O=/build/ext4 -j16 && \
                cp /build/ext4/arch/x86/boot/bzImage /my-stuff && \
                cp my-stuff/gce-config ~/.config/gce-config && \
                gce-xfstests.sh --kernel /my-stuff/bzImage smoke

Other useful feature is ability to speed xfstests-bld by splitting
full test-set to groups and run kvm-xfstests instances in parallel.
For example:
docker run -v my-kernel:/my-kernel XXX/xfstests-bld  \
       kvm-xfstests.sh --kernel /my-kernel/bzImage -c 1k > 1k.log &
docker run -v my-kernel:/my-kernel XXX/xfstests-bld  \
       kvm-xfstests.sh --kernel /my-kernel/bzImage -c 4k > 4k.log &
docker run -v my-kernel:/my-kernel XXX/xfstests-bld  \
       kvm-xfstests.sh --kernel /my-kernel/bzImage -c dax > dax.log &
.....
w/o sand box they will conflict due to net ports (localhost:7500 etc)
In my case speed up is about x10
> git am -s ~/mbox/patch.mbox
> ../make-ext4      # shortcut for something like "make O=/build/ext4 -j16"
> kvm-xfstests smoke   # ~/.config/gce-xfststs sets GCE_KERNEL=/build/ext4
>
> needing to type a long docker run command doesn't seem to add any
> value.
>
> Confused,
>
> 					- Ted
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-08-19  9:27 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-18 20:54 [PATCH 0/6] xfstests-bld: Fixes and improvements v1 Dmitry Monakhov
     [not found] ` <1471553651-9547-7-git-send-email-dmonakhov@openvz.org>
2016-08-19  5:21   ` [PATCH 6/6] Add dockerfile Theodore Ts'o
2016-08-19  9:27     ` Dmitry Monakhov [this message]
2016-08-19 23:29       ` Theodore Ts'o
2016-08-20 11:31         ` Dmitry Monakhov
2016-08-20 19:45           ` Theodore Ts'o
2016-08-21  2:55             ` Theodore Ts'o
2016-08-21 12:02             ` Dmitry Monakhov
2016-08-21 14:26               ` Theodore Ts'o
2016-08-21 15:35               ` Theodore Ts'o
2016-08-22  8:07                 ` Dmitry Monakhov
     [not found] ` <1471553651-9547-2-git-send-email-dmonakhov@openvz.org>
2016-08-19 13:35   ` [PATCH 1/6] xfstests-bld: build update xfstests repo Theodore Ts'o
     [not found] ` <1471553651-9547-3-git-send-email-dmonakhov@openvz.org>
2016-08-19 13:35   ` [PATCH 2/6] fix build typos Theodore Ts'o
     [not found] ` <1471553651-9547-4-git-send-email-dmonakhov@openvz.org>
2016-08-19 13:42   ` [PATCH 3/6] kvm-xfstests: update command line help Theodore Ts'o
2016-08-19 13:51     ` Dmitry Monakhov
2016-08-20 22:19       ` Theodore Ts'o
     [not found] ` <1471553651-9547-6-git-send-email-dmonakhov@openvz.org>
2016-08-19 13:44   ` [PATCH 5/6] kvm-xfstests: add initrd support Theodore Ts'o
2016-08-19 13:59     ` Dmitry Monakhov
2016-08-19 23:40       ` Theodore Ts'o
2016-08-20 22:35   ` Theodore Ts'o
     [not found] ` <1471553651-9547-5-git-send-email-dmonakhov@openvz.org>
2016-08-19 13:32   ` [PATCH 4/6] xfstest-bld: use parallel gzip if possible Theodore Ts'o
2016-08-20 22:52   ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eg5l6rcg.fsf@openvz.org \
    --to=dmonakhov@openvz.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.