kewl-infrastructure-utils/scripts/container_init/container

75 lines
1.4 KiB
Plaintext
Executable File

#!/sbin/openrc-run
CONTAINER_NAME="${SVCNAME#*.}"
CONTAINER_CONFIG="/etc/conf.d/container.$CONTAINER_NAME"
description="Podman container management"
depend() {
need net
}
checkconfig() {
if [ ! $(which podman) ]; then
eerror "podman must be installed"
exit 1
fi
if [ -z "$CONTAINER_NAME" ]; then
eerror "instance not specified"
exit 1
fi
if [ ! -e "$CONTAINER_CONFIG" ]; then
eerror "configuration for container $CONTAINER_NAME not found"
exit 1
fi
source $CONTAINER_CONFIG
if [ -z "$IMAGE" ]; then
eerror "\$IMAGE not defined"
exit 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
source $CONTAINER_CONFIG
ebegin "image name: $IMAGE"
ebegin "mount args: $MOUNT_ARGS"
ebegin "network args: $NETWORK_ARGS"
if podman container exists $CONTAINER_NAME; then
podman container rm $CONTAINER_NAME
fi
podman run $MOUNT_ARGS $NETWORK_ARGS \
$USER_ARGS $CUSTOM_ARGS \
--name $CONTAINER_NAME -dit $IMAGE
eend $?
}
stop() {
if [ "${RC_CMD}" = "restart" ]
then
checkconfig || return 1
fi
ebegin "Stopping ${SVCNAME}"
if ! podman container exists $CONTAINER_NAME; then
eerror "$CONTAINER_NAME does not exist"
return 0
fi
podman container stop $CONTAINER_NAME
podman container rm $CONTAINER_NAME
eend $?
}