Conversation
|
@nazavode @tgamblin @opadron I think you might be interested in the above. There are a few issues to be worked out (in particular with EDIT: need to check that, but it seems that it works, if I put an extra it won't. Will try to investigate this more in details. |
00a85bb to
94d51af
Compare
94d51af to
3cbefbb
Compare
3cbefbb to
1cfa812
Compare
4ec7198 to
9862b07
Compare
|
I tried this and got an error complaining about no default GPG key. Even though the output of |
|
@alalazo: are you guys using this at EPFL? I think this looks pretty cool, though I might quibble about the names of the commands and some of the options. How is your build farm set up? |
|
@alalazo: I think the question for us is how best to get buildbot to farm out container instances to VMs. |
|
@opadron I could reproduce your error. I need to dig deeper to confirm, but I suspect it's due to a change in $ git clean -idx
$ spack gpg list
gpg: keyring `/home/mculpo/PycharmProjects/spack/opt/spack/gpg/pubring.gpg' created
gpg: /home/mculpo/PycharmProjects/spack/opt/spack/gpg/trustdb.gpg: trustdb created
$ spack gpg create "Massimiliano Culpo" "[email protected]"
gpg: keyring `/home/mculpo/PycharmProjects/spack/opt/spack/gpg/secring.gpg' created
gpg: skipping control `%no-protection' ()
gpg: key E258F6F9 marked as ultimately trusted
$ spack -dv docker build --image=ubuntu:16.04 zlib patchelf szip
==> Reading config file /home/mculpo/PycharmProjects/spack/etc/spack/defaults/modules.yaml
==> Building image for "ubuntu:16.04"
==> 'docker' 'build' '-t' 'spack-builder' '.'
Sending build context to Docker daemon 2.56kB
Step 1/5 : FROM ubuntu:16.04
...
gpg: using "9AB057DF71F30047AFB1DEF5348CB8B1E258F6F9" as default secret key for signing
gpg: WARNING: unsafe ownership on homedir '/home/spack/opt/spack/gpg'
gpg: WARNING: unsafe ownership on homedir '/home/spack/opt/spack/gpg'
gpg: WARNING: unsafe ownership on homedir '/home/spack/opt/spack/gpg'
gpg: using "9AB057DF71F30047AFB1DEF5348CB8B1E258F6F9" as default secret key for signing
==> creating binary cache file for package [email protected]%[email protected]+optimize+pic+shared arch=linux-ubuntu16.04-x86_64
==> creating binary cache file for package [email protected]%[email protected] arch=linux-ubuntu16.04-x86_64
==> 'docker' 'volume' 'rm' 'spack-opt' |
We are not using this in production yet - I think we still miss some features for Regarding our build farm, it's currently based on shell scripts triggered by Jenkins. In the scripts we use p.s. I am also waiting for @scheibelp environments to be merged, the idea being to build an entire set of specs into a docker image that can then be delivered to some group of users. These users could then run the image locally on their workstation or on our clusters via shifter. |
|
Is there a specific reason for your choice of docker? Here the preference seems to be singularity containers, so I'm curious about the reasoning (really either way, as I don't know too much about the differences). If I read this PR correctly it shouldn't be too much work to do the equivalent for singularity, although we may want to think about what we can reuse if we end up supporting multiple container systems. |
|
@healther It won't be hard to factor out common parts if we'll add a
Docker seems to me more flexible and more widely used outside of the HPC world (e.g. services like Travis support docker images, I doubt they will add support for singularity images) + from Singularity homepage:
so while you can build a Singularity image out of a docker one, I don't think you can do the opposite. In any case we are beginning to experiment with docker/singularity + shifter now in our group, so I am not yet aware of all the pitfalls you might get into.
Do you mean in your group, or here in this community? 😕 |
|
By here I meant our group, sorry for not being more specific. Thanks for your thoughts, I'll have to dig into the specific differences. |
|
@tgamblin Forgot to mention:
no worries changing names to options or commands. If there's already something that you want changed let me know. |
This commit adds a docker command to Spack, to better integrate containers with package testing and building. There are two main sub-commands: spack docker start <service> spack docker build <specs> The former starts services based on Docker images, the latter tries to build a given spec within a docker instance with Spack.
9862b07 to
85cc2e3
Compare
This PR adds the possibility to test a given package within a docker instance. The artifacts created by different builds (source files and binary caches) are stored in a docker volume, and they may be served on the
hostviahttp. The installation of the spec is done by default with no network access (that should reveal pathological packages, that download stuff at install time).Example
Starting from this initial status:
we can start to serve the docker volume via
http:and then try installing specs on docker images:
It's possible to set verbosity to see directly what happens within the conatiners:
If you open
0.0.0.0:32679in your web browser you should be able to see the mirror with sources and binary caches.