75 lines
1.4 KiB
Plaintext
Executable File
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 $?
|
|
}
|