109 lines
2.0 KiB
Bash
Executable File
109 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# quick script to manage the container
|
|
CONTAINER_NAME=warewulf
|
|
|
|
create_container() {
|
|
podman create \
|
|
--name ${CONTAINER_NAME} \
|
|
--tls-verify=false \
|
|
--network host \
|
|
${IMAGE}
|
|
}
|
|
|
|
run_container() {
|
|
podman run \
|
|
--name ${CONTAINER_NAME} \
|
|
--rm -ti \
|
|
--network host \
|
|
--entrypoint bash \
|
|
${IMAGE}
|
|
}
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "
|
|
First ARG is mandatory:
|
|
$0 [create|start|stop|rm|rmcache|run|bash|logs|install|uninstall]
|
|
|
|
CONTAINER_NAME: '${CONTAINER_NAME}'
|
|
|
|
DEPLOYMENT:
|
|
create
|
|
Pull the image and create the container automatically
|
|
|
|
install
|
|
install needed files on the host to manage '${CONTAINER_NAME}' container
|
|
(in /usr/local/bin and /etc)
|
|
|
|
start
|
|
Start the container '${CONTAINER_NAME}'
|
|
|
|
REMOVAL:
|
|
uninstall
|
|
uninstall all needed files on the host to manage '${CONTAINER_NAME}' container
|
|
|
|
stop
|
|
stop the container '${CONTAINER_NAME}'
|
|
|
|
rm
|
|
delete the container '${CONTAINER_NAME}'
|
|
|
|
rmcache
|
|
remove the container image in cache ${IMAGE}
|
|
|
|
DEBUG:
|
|
run
|
|
podman run container '${CONTAINER_NAME}'
|
|
|
|
bash
|
|
go with /bin/bash command inside '${CONTAINER_NAME}'
|
|
|
|
logs
|
|
see log of container '${CONTAINER_NAME}'
|
|
|
|
"
|
|
exit 1
|
|
fi
|
|
|
|
###########
|
|
# MAIN
|
|
###########
|
|
set -euxo pipefail
|
|
|
|
case $1 in
|
|
start)
|
|
podman start ${CONTAINER_NAME}
|
|
podman ps | grep ${CONTAINER_NAME}
|
|
;;
|
|
stop)
|
|
podman stop ${CONTAINER_NAME}
|
|
podman ps | grep ${CONTAINER_NAME}
|
|
;;
|
|
rm)
|
|
set +e
|
|
podman stop ${CONTAINER_NAME}
|
|
podman rm ${CONTAINER_NAME}
|
|
;;
|
|
create)
|
|
create_container
|
|
;;
|
|
run)
|
|
run_container
|
|
;;
|
|
rmcache)
|
|
podman rmi ${IMAGE}
|
|
;;
|
|
logs)
|
|
podman logs ${CONTAINER_NAME}
|
|
;;
|
|
bash)
|
|
set +e
|
|
podman exec -ti ${CONTAINER_NAME} $@
|
|
;;
|
|
install)
|
|
podman run --env IMAGE=${IMAGE} --rm --privileged -v /:/host ${IMAGE} /bin/bash /container/label-install
|
|
;;
|
|
uninstall)
|
|
podman run --env IMAGE=${IMAGE} --rm --privileged -v /:/host ${IMAGE} /bin/bash /container/label-uninstall
|
|
;;
|
|
esac
|