charliecloud: 0.12 -> 0.18 (docker + ch-grow support)
This commit is contained in:
parent
46f277b3f2
commit
1601ff7dd4
@ -48,6 +48,7 @@ in
|
|||||||
ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
|
ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
|
||||||
certmgr = handleTest ./certmgr.nix {};
|
certmgr = handleTest ./certmgr.nix {};
|
||||||
cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
|
cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
|
||||||
|
charliecloud = handleTest ./charliecloud.nix {};
|
||||||
chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
|
chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
|
||||||
cjdns = handleTest ./cjdns.nix {};
|
cjdns = handleTest ./cjdns.nix {};
|
||||||
clickhouse = handleTest ./clickhouse.nix {};
|
clickhouse = handleTest ./clickhouse.nix {};
|
||||||
|
43
nixos/tests/charliecloud.nix
Normal file
43
nixos/tests/charliecloud.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# This test checks charliecloud image construction and run
|
||||||
|
|
||||||
|
import ./make-test-python.nix ({ pkgs, ...} : let
|
||||||
|
|
||||||
|
dockerfile = pkgs.writeText "Dockerfile" ''
|
||||||
|
FROM nix
|
||||||
|
RUN mkdir /home /tmp
|
||||||
|
RUN touch /etc/passwd /etc/group
|
||||||
|
CMD ["true"]
|
||||||
|
'';
|
||||||
|
|
||||||
|
in {
|
||||||
|
name = "charliecloud";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ bzizou ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
host = { ... }: {
|
||||||
|
environment.systemPackages = [ pkgs.charliecloud ];
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
users.users.alice = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "docker" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
host.start()
|
||||||
|
host.wait_for_unit("docker.service")
|
||||||
|
host.succeed(
|
||||||
|
'su - alice -c "docker load --input=${pkgs.dockerTools.examples.nix}"'
|
||||||
|
)
|
||||||
|
host.succeed(
|
||||||
|
"cp ${dockerfile} /home/alice/Dockerfile"
|
||||||
|
)
|
||||||
|
host.succeed('su - alice -c "ch-build -t hello ."')
|
||||||
|
host.succeed('su - alice -c "ch-builder2tar hello /var/tmp"')
|
||||||
|
host.succeed('su - alice -c "ch-tar2dir /var/tmp/hello.tar.gz /var/tmp"')
|
||||||
|
host.succeed('su - alice -c "ch-run /var/tmp/hello -- echo Running_From_Container_OK"')
|
||||||
|
'';
|
||||||
|
})
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchFromGitHub, python, autoconf, automake, docker, buildah }:
|
{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
@ -12,13 +12,21 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0x2kvp95ld0yii93z9i0k9sknfx7jkgy4rkw9l369fl7f73ghsiq";
|
sha256 = "0x2kvp95ld0yii93z9i0k9sknfx7jkgy4rkw9l369fl7f73ghsiq";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook ];
|
nativeBuildInputs = [ autoreconfHook makeWrapper ];
|
||||||
buildInputs = [ python docker buildah ];
|
buildInputs = [
|
||||||
|
docker
|
||||||
|
(python3.withPackages (ps: [ ps.lark-parser ps.requests ]))
|
||||||
|
];
|
||||||
|
|
||||||
|
configureFlags = let
|
||||||
|
pythonEnv = python3.withPackages (ps: [ ps.lark-parser ps.requests ]);
|
||||||
|
in [
|
||||||
|
"--with-python=${pythonEnv}/bin/python3"
|
||||||
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
patchShebangs test/
|
patchShebangs test/
|
||||||
patchShebangs autogen.sh
|
substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
|
||||||
./autogen.sh
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
@ -26,6 +34,16 @@ stdenv.mkDerivation rec {
|
|||||||
"LIBEXEC_DIR=lib/charliecloud"
|
"LIBEXEC_DIR=lib/charliecloud"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Charliecloud calls some external system tools.
|
||||||
|
# Here we wrap those deps so they are resolved inside nixpkgs.
|
||||||
|
postInstall = ''
|
||||||
|
for file in $out/bin/* ; do \
|
||||||
|
wrapProgram $file --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils docker gnused gnutar gzip findutils sudo ]}
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests.charliecloud = nixosTests.charliecloud;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
|
description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
Loading…
Reference in New Issue
Block a user