Container-Buildah
view release on metacpan or search on metacpan
lib/Container/Buildah/Stage.pm view on Meta::CPAN
# import tarball(s) from other container stages if configured
# private instance method
sub consume
{
my $self = shift;
# create groups and users before import
my $user = $self->get_user;
if (defined $self->get_user) {
my $user_name = $user;
my ($uid, $group_name, $gid);
if ($user =~ /:/x) {
($user_name, $group_name) = split /:/x, $user;
if ($user_name =~ /=/x) {
($user_name, $uid) = split /=/x, $user_name;
}
if ($group_name =~ /=/x) {
($group_name, $gid) = split /=/x, $group_name;
}
}
# TODO: find distro-independent approach instead of assuming Linux Fileystem Standard /usr/sbin paths
if (defined $group_name) {
$self->run(["/usr/sbin/groupadd", ((defined $gid) ? ("--gid=$gid") : ()), $group_name]);
}
my $user_home = $self->get_user_home;
$self->run(
["/usr/sbin/useradd", ((defined $uid) ? ("--uid=$uid") : ()),
((defined $group_name) ? ("--gid=$group_name") : ()),
((defined $user_home) ? ("--home-dir=$user_home") : ()), $user_name],
);
}
# import tarballs from each stage we depend upon
my $consumes = $self->get_consumes;
if (defined $consumes) {
if (ref $consumes eq "ARRAY") {
my @in_stages = @$consumes;
my $cwd = getcwd();
lib/Container/Buildah/Subcommand.pm view on Meta::CPAN
# process parameters
my ($extract, @args) = process_params({name => 'bud',
extract => [qw(suppress_output suppress_error nonzero zero)],
arg_flag => [qw(compress disable-content-trust http-proxy log-rusage no-cache pull pull-always pull-never
quiet rm squash tls-verify)],
arg_flag_str => [qw(disable-compression force-rm layers)],
arg_str => [qw(arch authfile blob-cache cache-from cert-dir cgroup-parent cni-config-dir cni-plugin-path
cpu-period cpu-quota cpu-shares cpuset-cpus cpuset-mems creds decryption-key file format http-proxy
iidfile ipc isolation jobs logfile loglevel memory memory-swap network os override-arch override-os
platform runtime shm-size sign-by signature-policy tag target timestamp userns userns-uid-map
userns-gid-map userns-uid-map-user userns-gid-map-group uts)],
arg_array => [qw(add-host annotation build-arg cap-add cap-drop device dns dns-option dns-search
label runtime-flag security-opt ulimit volume)],
}, $params);
# run buildah-tag
$cb->buildah($extract, "bud", @args, @in_args);
return;
}
# front end to "buildah containers" subcommand
lib/Container/Buildah/Subcommand.pm view on Meta::CPAN
$params = shift @in_args;
}
# process parameters
my ($extract, @args) = process_params({name => 'from',
extract => [qw(suppress_output suppress_error nonzero zero)],
arg_flag => [qw(pull-always pull-never tls-verify quiet)],
arg_flag_str => [qw(http-proxy pull)],
arg_str => [qw(authfile blob-cache cert-dir cgroup-parent cidfile cni-config-dir cni-plugin-path cpu-period
cpu-quota cpu-shares cpuset-cpus cpuset-mems creds device format ipc isolation memory memory-swap name
network override-arch override-os pid shm-size ulimit userns userns-uid-map userns-gid-map
userns-uid-map-user userns-gid-map-group uts)],
arg_array => [qw(add-host cap-add cap-drop decryption-key device dns dns-option dns-search security-opt
ulimit volume)],
}, $params);
# get image parameter
my $image = shift @in_args;
if (not defined $image) {
croak "image parameter missing in call to 'from' method";
}
( run in 1.043 second using v1.01-cache-2.11-cpan-5735350b133 )