~matthiasbeyer/butido

da3c15e3c21fe8912172568a85a79859bb5bd22e — Matthias Beyer 2 years ago badd1a6
Build unique container name from job metadata

With this patch, the name of the running container is generated from the job
metadata with a "butido-" prefix, so that containers on nodes can be identified
(the auto-generated names from docker are funny, but help nobody).

Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
1 files changed, 7 insertions(+), 0 deletions(-)

M src/endpoint/configured.rs
M src/endpoint/configured.rs => src/endpoint/configured.rs +7 -0
@@ 522,6 522,13 @@ impl<'a> PreparedContainer<'a> {

        let builder_opts = {
            let mut builder_opts = shiplift::ContainerOptions::builder(job.image().as_ref());
            let container_name = format!("butido-{package}-{version}-{id}",
                package = job.package().name().as_ref(),
                version = job.package().version().as_ref(),
                id = job.uuid()
            );
            trace!("container name = {}", container_name);
            builder_opts.name(&container_name);
            builder_opts.env(envs.iter().map(AsRef::as_ref).collect::<Vec<&str>>());
            builder_opts.cmd(vec!["/bin/bash"]); // we start the container with /bin/bash, but exec() the script in it later
            builder_opts.attach_stdin(true); // we have to attach, otherwise bash exits