From 4abccc2c18bcc237324071298c0f6c75e14ef7c0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 9 Feb 2021 17:18:31 +0100 Subject: Merging upstream version 20210101. Signed-off-by: Daniel Baumann --- CHANGELOG.txt | 12 +++ Makefile | 2 +- VERSION.txt | 2 +- bin/container | 2 +- bin/container-shell | 2 +- lib/container/auto | 2 +- lib/container/console | 2 +- lib/container/create | 2 +- lib/container/enter | 2 +- lib/container/key | 2 +- lib/container/limit | 2 +- lib/container/list | 2 +- lib/container/log | 2 +- lib/container/move | 2 +- lib/container/remove | 20 +++-- lib/container/restart | 35 +++++--- lib/container/run | 127 +++++++++++++++++++++++++++ lib/container/start | 24 +++-- lib/container/stop | 33 ++++--- lib/container/top | 2 +- lib/container/version | 2 +- share/bash-completion/container | 2 +- share/doc/HOST-SETUP.txt | 20 +++++ share/doc/examples/container-images.sh | 2 +- share/doc/examples/engywuck-backports.cfg | 4 +- share/hooks/post-start.chown-nvidia.sh | 2 +- share/hooks/pre-create.git-pull.sh | 2 +- share/hooks/pre-start.unlink-console.sh | 2 +- share/man/Makefile | 2 +- share/man/compute-tools.7.txt | 2 +- share/man/container-auto.1.txt | 2 +- share/man/container-console.1.txt | 2 +- share/man/container-create-curl.1.txt | 2 +- share/man/container-create-debconf.1.txt | 2 +- share/man/container-create-debootstrap.1.txt | 2 +- share/man/container-create.1.txt | 2 +- share/man/container-enter.1.txt | 2 +- share/man/container-key.1.txt | 2 +- share/man/container-limit.1.txt | 2 +- share/man/container-list.1.txt | 2 +- share/man/container-log.1.txt | 2 +- share/man/container-move.1.txt | 2 +- share/man/container-remove.1.txt | 2 +- share/man/container-restart.1.txt | 5 +- share/man/container-run.1.txt | 80 +++++++++++++++++ share/man/container-shell.1.txt | 2 +- share/man/container-start.1.txt | 2 +- share/man/container-stop.1.txt | 5 +- share/man/container-top.1.txt | 2 +- share/man/container-version.1.txt | 2 +- share/man/container.1.txt | 5 +- share/scripts/curl | 2 +- share/scripts/curl.d/0001-debconf | 2 +- share/scripts/debconf | 2 +- share/scripts/debconf.d/0001-preseed-file | 2 +- share/scripts/debconf.d/0002-preseed-debconf | 2 +- share/scripts/debconf.d/0003-debconf | 6 +- share/scripts/debootstrap | 2 +- 58 files changed, 378 insertions(+), 88 deletions(-) create mode 100755 lib/container/run create mode 100644 share/man/container-run.1.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt index cf94106..171ca3c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,15 @@ +2021-01-01 Daniel Baumann + + * Releasing version 20210101. + + [ Daniel Baumann ] + + * Adding container run command to execute programs within containers. + * Cleaning up and harmonizing verbose output for container remove, restart, start, and stop commands. + * Expanding host-setup documentation about ipv4/ipv6 dual-stack bridge configuration. + * Switching redirector address for progress-linux. + * Updating copyright notices for 2021. + 2020-10-30 Daniel Baumann * Releasing version 20201030. diff --git a/Makefile b/Makefile index 13a4661..2b1fb37 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/VERSION.txt b/VERSION.txt index d724ea4..71bc3f4 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -20201030 +20210101 diff --git a/bin/container b/bin/container index 3ab1a69..4570dc3 100755 --- a/bin/container +++ b/bin/container @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/bin/container-shell b/bin/container-shell index 27bc5a2..016724f 100755 --- a/bin/container-shell +++ b/bin/container-shell @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/auto b/lib/container/auto index 16c2933..6c1d47b 100755 --- a/lib/container/auto +++ b/lib/container/auto @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/console b/lib/container/console index 2a41bf5..2dc6546 100755 --- a/lib/container/console +++ b/lib/container/console @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/create b/lib/container/create index 519a815..bdf9fb4 100755 --- a/lib/container/create +++ b/lib/container/create @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/enter b/lib/container/enter index 144a06a..fed1193 100755 --- a/lib/container/enter +++ b/lib/container/enter @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/key b/lib/container/key index f4e337c..4cbdaa0 100755 --- a/lib/container/key +++ b/lib/container/key @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/limit b/lib/container/limit index 233459a..99ef03a 100755 --- a/lib/container/limit +++ b/lib/container/limit @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/list b/lib/container/list index cf7b148..ba794ab 100755 --- a/lib/container/list +++ b/lib/container/list @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/log b/lib/container/log index 2740213..a18c421 100755 --- a/lib/container/log +++ b/lib/container/log @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/move b/lib/container/move index f87e5a8..e20d8a8 100755 --- a/lib/container/move +++ b/lib/container/move @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/remove b/lib/container/remove index 820e45e..75ebd60 100755 --- a/lib/container/remove +++ b/lib/container/remove @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -126,12 +126,6 @@ case "${NAME}" in for NAME in ${NAMES} do - case "${VERBOSE}" in - true) - echo "Removing container ${NAME}..." - ;; - esac - ${PROGRAM} remove --name ${NAME} ${OPTIONS_ALL} || true done @@ -238,9 +232,21 @@ then fi # Run +case "${VERBOSE}" in + true) + echo -n "Removing container ${NAME}..." + ;; +esac + rm --preserve-root --one-file-system -rf ${RM_OPTIONS} "${MACHINES}/${NAME}" rm -f ${RM_OPTIONS} "${CONFIG}/${NAME}.conf" +case "${VERBOSE}" in + true) + echo " done." + ;; +esac + # Post hooks for FILE in "${HOOKS}/post-${COMMAND}".* "${HOOKS}/${NAME}.post-${COMMAND}" do diff --git a/lib/container/restart b/lib/container/restart index f78cfff..3c84f4d 100755 --- a/lib/container/restart +++ b/lib/container/restart @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -30,8 +30,8 @@ Parameters () { OPTIONS_ALL="" - GETOPT_LONGOPTIONS="name:," - GETOPT_OPTIONS="n:," + GETOPT_LONGOPTIONS="name:,verbose," + GETOPT_OPTIONS="n:,v," PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" @@ -51,6 +51,13 @@ Parameters () shift 2 ;; + -v|--verbose) + VERBOSE="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --verbose" + ;; + --) shift 1 break @@ -66,7 +73,7 @@ Parameters () Usage () { - echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME" >&2 + echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-v|--verbose]" >&2 exit 1 } @@ -83,13 +90,7 @@ case "${NAME}" in for NAME in ${NAMES} do - case "${VERBOSE}" in - true) - echo "Restarting container ${NAME}..." - ;; - esac - - ${PROGRAM} restart --name ${NAME} || true + ${PROGRAM} restart --name ${NAME} ${OPTIONS_ALL} || true done exit 0 @@ -112,8 +113,20 @@ do done # Run +case "${VERBOSE}" in + true) + echo -n "Restarting container ${NAME}..." + ;; +esac + machinectl reboot ${NAME} +case "${VERBOSE}" in + true) + echo " done." + ;; +esac + # Post hooks for FILE in "${HOOKS}/post-${COMMAND}".* "${HOOKS}/${NAME}.post-${COMMAND}" do diff --git a/lib/container/run b/lib/container/run new file mode 100755 index 0000000..f6323c0 --- /dev/null +++ b/lib/container/run @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright (C) 2014-2019 Daniel Baumann +# +# SPDX-License-Identifier: GPL-3.0+ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +set -e + +PROJECT="open-infrastructure" +PROGRAM="container" +COMMAND="$(basename ${0})" + +HOOKS="/etc/${PROJECT}/${PROGRAM}/hooks" +MACHINES="/var/lib/machines" + +Parameters () +{ + GETOPT_LONGOPTIONS="name:," + GETOPT_OPTIONS="n:," + + PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" + + if [ "${?}" != "0" ] + then + echo "'${COMMAND}': getopt exit" >&2 + exit 1 + fi + + eval set -- "${PARAMETERS}" + + while true + do + case "${1}" in + -n|--name) + NAME="${2}" + shift 2 + ;; + + --) + shift 1 + break + ;; + + *) + echo "'${COMMAND}': getopt error" >&2 + exit 1 + ;; + esac + done +} + +Usage () +{ + echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME -- COMMAND" >&2 + exit 1 +} + +Parameters "${@}" + +if [ -z "${NAME}" ] +then + Usage +fi + +if [ ! -e "${MACHINES}/${NAME}" ] +then + echo "'${NAME}': no such container" >&2 + exit 1 +fi + +STATE="$(machinectl show ${NAME} 2>&1 | awk -F= '/^State=/ { print $2 }')" + +case "${STATE}" in + running) + ;; + + *) + echo "'${NAME}': container is not running" >&2 + exit 1 + ;; +esac + +LEADER="$(machinectl status ${NAME} | awk '/Leader: / { print $2 }')" + +# Pre hooks +for FILE in "${HOOKS}/pre-${COMMAND}".* "${HOOKS}/${NAME}.pre-${COMMAND}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done + +SSH_CLIENT="${SSH_CLIENT:-127.0.0.1 0 0}" + +RUN="$(echo ${@} | awk -F-- '{ print $2}')" + +# Run +nsenter --all --target "${LEADER}" --wd="${MACHINES}/${NAME}/root" /usr/bin/script -c "LC_ALL=C.UTF-8 /bin/bash -l -c \"${RUN}\"" -q /dev/null + +case "${SSH_CLIENT}" in + 127.0.0.1*) + unset SSH_CLIENT + ;; +esac + +# Post hooks +for FILE in "${HOOKS}/post-${COMMAND}".* "${HOOKS}/${NAME}.post-${COMMAND}" +do + if [ -x "${FILE}" ] + then + "${FILE}" + fi +done diff --git a/lib/container/start b/lib/container/start index 6309fb1..30aee53 100755 --- a/lib/container/start +++ b/lib/container/start @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -77,6 +77,9 @@ Parameters () -v|--verbose) VERBOSE="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --verbose" ;; --) @@ -114,12 +117,6 @@ case "${NAME}" in for NAME in ${NAMES} do - case "${VERBOSE}" in - true) - echo "Starting container ${NAME}..." - ;; - esac - ${PROGRAM} start --name ${NAME} ${OPTIONS_ALL} || true done @@ -516,6 +513,19 @@ case "${START}" in *) # Run + + case "${VERBOSE}" in + true) + echo -n "Starting container ${NAME}..." + ;; + esac + ${SETARCH} systemd-nspawn --keep-unit ${BIND} ${BIND_RO} ${BOOT} ${CAPABILITY} ${DIRECTORY} ${DROP_CAPABILITY} ${MACHINE} ${NETWORK_VETH_EXTRA} ${LINK_JOURNAL} ${REGISTER} + + case "${VERBOSE}" in + true) + echo " done." + ;; + esac ;; esac diff --git a/lib/container/stop b/lib/container/stop index a299cb1..6b8caee 100755 --- a/lib/container/stop +++ b/lib/container/stop @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -33,8 +33,8 @@ Parameters () { OPTIONS_ALL="" - GETOPT_LONGOPTIONS="name:,force,clean," - GETOPT_OPTIONS="n:,f," + GETOPT_LONGOPTIONS="name:,force,clean,verbose," + GETOPT_OPTIONS="n:,f,v," PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" @@ -69,6 +69,13 @@ Parameters () OPTONS_ALL="${OPTIONS_ALL} --clean" ;; + -v|--verbose) + VERBOSE="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --verbose" + ;; + --) shift 1 break @@ -84,7 +91,7 @@ Parameters () Usage () { - echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-f|--force]" >&2 + echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-f|--force] [-v|--verbose]" >&2 exit 1 } @@ -122,12 +129,6 @@ case "${NAME}" in for NAME in ${NAMES} do - case "${VERBOSE}" in - true) - echo "Stopping container ${NAME}..." - ;; - esac - ${PROGRAM} stop --name ${NAME} ${OPTIONS_ALL} || true done @@ -253,6 +254,12 @@ case "${FORCE}" in esac # Run +case "${VERBOSE}" in + true) + echo -n "Stopping container ${NAME}..." + ;; +esac + machinectl ${MODE} ${NAME} case "${FORCE}" in @@ -266,6 +273,12 @@ case "${FORCE}" in ;; esac +case "${VERBOSE}" in + true) + echo " done." + ;; +esac + # Post hooks for FILE in "${HOOKS}/post-${COMMAND}".* "${HOOKS}/${NAME}.post-${COMMAND}" do diff --git a/lib/container/top b/lib/container/top index 81c7436..d9baa1c 100755 --- a/lib/container/top +++ b/lib/container/top @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/lib/container/version b/lib/container/version index 8d7f052..c2b7716 100755 --- a/lib/container/version +++ b/lib/container/version @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/bash-completion/container b/share/bash-completion/container index 95199b1..4e49cec 100644 --- a/share/bash-completion/container +++ b/share/bash-completion/container @@ -1,7 +1,7 @@ # bash-completion # # Copyright (C) 2016 Andreas Kreuzer -# Copyright (C) 2016-2020 Daniel Baumann +# Copyright (C) 2016-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/doc/HOST-SETUP.txt b/share/doc/HOST-SETUP.txt index d0a2395..6b368f0 100644 --- a/share/doc/HOST-SETUP.txt +++ b/share/doc/HOST-SETUP.txt @@ -216,3 +216,23 @@ IPv6 addresses and netmasks. In order to use dual-stack, bridges must have a IPv4 address assigned (can be a dummy one from a privacy range or 127.0.0.0/8). + +Let me repeat: dual-stack only works when you assign a primary IPv6 address +(private or public, doesn't matter) *and* add an additional IPv4 address. +Yes, the IPv4 address can be a private address, the containers can still +have a public IPv4 address. + +A complete example looks like this: + +auto bridge0 +iface bridge0 inet6 static + address 2a07:6b47:4::4:1 + netmask 48 + + up ip addr add 127.4.4.1 dev $IFACE + down ip addr del 127.4.4.1 dev $IFACE + + bridge_fd 0 + bridge_maxwait 0 + bridge_stp 0 + bridge-mcquerier 1 diff --git a/share/doc/examples/container-images.sh b/share/doc/examples/container-images.sh index 8f1a2a3..7bb40b4 100755 --- a/share/doc/examples/container-images.sh +++ b/share/doc/examples/container-images.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/doc/examples/engywuck-backports.cfg b/share/doc/examples/engywuck-backports.cfg index 392c40d..9ca0288 100644 --- a/share/doc/examples/engywuck-backports.cfg +++ b/share/doc/examples/engywuck-backports.cfg @@ -17,8 +17,8 @@ compute-tools container/architecture select auto compute-tools container/archives multiselect engywuck-security, engywuck-updates, engywuck-extras, engywuck-backports, engywuck-backports-extras #compute-tools container/parent-archives multiselect -compute-tools container/mirror string https://cdn.deb.progress-linux.org/packages -compute-tools container/mirror-security string https://cdn.deb.progress-linux.org/packages +compute-tools container/mirror string https://deb.progress-linux.org/packages +compute-tools container/mirror-security string https://deb.progress-linux.org/packages compute-tools container/parent-mirror string https://deb.debian.org/debian compute-tools container/parent-mirror-security string http://security.debian.org diff --git a/share/hooks/post-start.chown-nvidia.sh b/share/hooks/post-start.chown-nvidia.sh index 4dbc247..e1ab35b 100755 --- a/share/hooks/post-start.chown-nvidia.sh +++ b/share/hooks/post-start.chown-nvidia.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/hooks/pre-create.git-pull.sh b/share/hooks/pre-create.git-pull.sh index 582479e..823440f 100755 --- a/share/hooks/pre-create.git-pull.sh +++ b/share/hooks/pre-create.git-pull.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/hooks/pre-start.unlink-console.sh b/share/hooks/pre-start.unlink-console.sh index 566a4de..3133a19 100755 --- a/share/hooks/pre-start.unlink-console.sh +++ b/share/hooks/pre-start.unlink-console.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/man/Makefile b/share/man/Makefile index 535b2b1..1500b15 100644 --- a/share/man/Makefile +++ b/share/man/Makefile @@ -1,6 +1,6 @@ # Makefile -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/man/compute-tools.7.txt b/share/man/compute-tools.7.txt index bcd234f..f8d9c76 100644 --- a/share/man/compute-tools.7.txt +++ b/share/man/compute-tools.7.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-auto.1.txt b/share/man/container-auto.1.txt index b1aa550..3ed4c56 100644 --- a/share/man/container-auto.1.txt +++ b/share/man/container-auto.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-console.1.txt b/share/man/container-console.1.txt index 7f4fb03..8f35a8d 100644 --- a/share/man/container-console.1.txt +++ b/share/man/container-console.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-create-curl.1.txt b/share/man/container-create-curl.1.txt index c15ee4e..1095103 100644 --- a/share/man/container-create-curl.1.txt +++ b/share/man/container-create-curl.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-create-debconf.1.txt b/share/man/container-create-debconf.1.txt index 0381cae..f4092a0 100644 --- a/share/man/container-create-debconf.1.txt +++ b/share/man/container-create-debconf.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-create-debootstrap.1.txt b/share/man/container-create-debootstrap.1.txt index 6acdbeb..60f0a22 100644 --- a/share/man/container-create-debootstrap.1.txt +++ b/share/man/container-create-debootstrap.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-create.1.txt b/share/man/container-create.1.txt index 2ba95de..dcb0df4 100644 --- a/share/man/container-create.1.txt +++ b/share/man/container-create.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-enter.1.txt b/share/man/container-enter.1.txt index 162d510..c8d7f3c 100644 --- a/share/man/container-enter.1.txt +++ b/share/man/container-enter.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-key.1.txt b/share/man/container-key.1.txt index 9463141..2b54d78 100644 --- a/share/man/container-key.1.txt +++ b/share/man/container-key.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-limit.1.txt b/share/man/container-limit.1.txt index c5c2408..5f1ca30 100644 --- a/share/man/container-limit.1.txt +++ b/share/man/container-limit.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-list.1.txt b/share/man/container-list.1.txt index 15a54c2..4016b87 100644 --- a/share/man/container-list.1.txt +++ b/share/man/container-list.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-log.1.txt b/share/man/container-log.1.txt index fa9fe71..c30b37a 100644 --- a/share/man/container-log.1.txt +++ b/share/man/container-log.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-move.1.txt b/share/man/container-move.1.txt index fd6b83d..fef0bce 100644 --- a/share/man/container-move.1.txt +++ b/share/man/container-move.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-remove.1.txt b/share/man/container-remove.1.txt index afe8d03..0975168 100644 --- a/share/man/container-remove.1.txt +++ b/share/man/container-remove.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-restart.1.txt b/share/man/container-restart.1.txt index b0d66e2..2a4dfa8 100644 --- a/share/man/container-restart.1.txt +++ b/share/man/container-restart.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // @@ -46,6 +46,9 @@ The following container options are available: *-n, --name='NAME'*:: Specify container name. Specifying 'ALL' will restart all started container. +*-v, --verbose*:: + Explain what is being done. + EXAMPLES -------- diff --git a/share/man/container-run.1.txt b/share/man/container-run.1.txt new file mode 100644 index 0000000..b46ebf8 --- /dev/null +++ b/share/man/container-run.1.txt @@ -0,0 +1,80 @@ +// Copyright (C) 2014-2021 Daniel Baumann +// +// SPDX-License-Identifier: GPL-3.0+ +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +CONTAINER-RUN(1) +================ +:doctype: manpage +:man manual: Open Infrastructure +:man source: compute-tools +:man version: {revnumber} + + +NAME +---- +container-run - Execute commands in a container namespace + + +SYNOPSIS +-------- +*container run* ['OPTIONS'] -- COMMAND +*cnt r* ['OPTIONS'] -- COMMAND + + +DESCRIPTION +----------- +The container run command executes arbitrary commands as root in a container namespace. + + +OPTIONS +------- +The following container options are available: + +*-n, --name='NAME'*:: + Specify container name. Specifying 'ALL' will start all stopped container. + + +EXAMPLES +-------- +*Run 'hostname' in example.net container:*:: + sudo container run -n example.net -- hostname + +*Create and delete a file in example.net container:*:: + sudo container run -n example.net -- 'touch /tmp/foo && rm -f /tmp/foo' + + +SEE ALSO +-------- +compute-tools(7), +container(1). + + +HOMEPAGE +-------- +More information about compute-tools and the Open Infrastructure project can be found on the homepage at https://open-infrastructure.net. + + +CONTACT +------- +Bug reports, feature requests, help, patches, support and everything else +are welcome on the Open Infrastructure Software Mailing List . + +Debian specific bugs can also be reported in the Debian Bug Tracking System at https://bugs.debian.org. + + +AUTHORS +------- +compute-tools were written by Daniel Baumann and others. diff --git a/share/man/container-shell.1.txt b/share/man/container-shell.1.txt index cd19c69..03f2185 100644 --- a/share/man/container-shell.1.txt +++ b/share/man/container-shell.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-start.1.txt b/share/man/container-start.1.txt index e6c874e..2b7b919 100644 --- a/share/man/container-start.1.txt +++ b/share/man/container-start.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-stop.1.txt b/share/man/container-stop.1.txt index 4450ba3..9eab1c4 100644 --- a/share/man/container-stop.1.txt +++ b/share/man/container-stop.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // @@ -49,6 +49,9 @@ The following container options are available: *-f, --force*:: Instead of running the proper shutdown sequence, terminate all processes of the container imediatly. +*-v, --verbose*:: + Explain what is being done. + EXAMPLES -------- diff --git a/share/man/container-top.1.txt b/share/man/container-top.1.txt index 4f41b79..367be1b 100644 --- a/share/man/container-top.1.txt +++ b/share/man/container-top.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container-version.1.txt b/share/man/container-version.1.txt index 498d842..6549d02 100644 --- a/share/man/container-version.1.txt +++ b/share/man/container-version.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // diff --git a/share/man/container.1.txt b/share/man/container.1.txt index 02cdc64..d7ad339 100644 --- a/share/man/container.1.txt +++ b/share/man/container.1.txt @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 Daniel Baumann +// Copyright (C) 2014-2021 Daniel Baumann // // SPDX-License-Identifier: GPL-3.0+ // @@ -75,6 +75,9 @@ The following container commands are available: *enter*:: Enter a container namespace, see container-enter(1). +*run*:: + Execute commands in a container namespace, see container-run(1). + *key*:: Manage GnuPG keyring for container operations, see container-key(1). diff --git a/share/scripts/curl b/share/scripts/curl index b756c48..465ecbe 100755 --- a/share/scripts/curl +++ b/share/scripts/curl @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/scripts/curl.d/0001-debconf b/share/scripts/curl.d/0001-debconf index 6c3699a..0910480 100755 --- a/share/scripts/curl.d/0001-debconf +++ b/share/scripts/curl.d/0001-debconf @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/scripts/debconf b/share/scripts/debconf index be0fae0..7f2bf3d 100755 --- a/share/scripts/debconf +++ b/share/scripts/debconf @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/scripts/debconf.d/0001-preseed-file b/share/scripts/debconf.d/0001-preseed-file index 2c83675..4fec6b0 100755 --- a/share/scripts/debconf.d/0001-preseed-file +++ b/share/scripts/debconf.d/0001-preseed-file @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/scripts/debconf.d/0002-preseed-debconf b/share/scripts/debconf.d/0002-preseed-debconf index a9c7e77..9bc9fcf 100755 --- a/share/scripts/debconf.d/0002-preseed-debconf +++ b/share/scripts/debconf.d/0002-preseed-debconf @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # diff --git a/share/scripts/debconf.d/0003-debconf b/share/scripts/debconf.d/0003-debconf index dc2db47..dda3821 100755 --- a/share/scripts/debconf.d/0003-debconf +++ b/share/scripts/debconf.d/0003-debconf @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # @@ -308,7 +308,7 @@ Mirror () ;; progress-linux) - db_set container/mirror https://cdn.deb.progress-linux.org/packages + db_set container/mirror https://deb.progress-linux.org/packages db_fset container/mirror seen false ;; esac @@ -328,7 +328,7 @@ Mirror () ;; progress-linux) - MIRROR="https://cdn.deb.progress-linux.org/packages" + MIRROR="https://deb.progress-linux.org/packages" ;; esac fi diff --git a/share/scripts/debootstrap b/share/scripts/debootstrap index 0130b72..98f202b 100755 --- a/share/scripts/debootstrap +++ b/share/scripts/debootstrap @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2020 Daniel Baumann +# Copyright (C) 2014-2021 Daniel Baumann # # SPDX-License-Identifier: GPL-3.0+ # -- cgit v1.2.3