stdlib/docker: #Run checks if the container exists and can optionnally recreate it

Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
This commit is contained in:
Sam Alba 2021-11-02 11:38:29 -07:00
parent 2cc3f9ad5a
commit 72723c4ca7

View File

@ -200,6 +200,9 @@ import (
// Container name // Container name
name?: dagger.#Input & {string} name?: dagger.#Input & {string}
// Recreate container?
recreate: dagger.#Input & {bool | *true}
// Image registry // Image registry
registry?: { registry?: {
target: string target: string
@ -216,6 +219,16 @@ import (
if [ ! -z "$CONTAINER_NAME" ]; then if [ ! -z "$CONTAINER_NAME" ]; then
OPTS="$OPTS --name $CONTAINER_NAME" OPTS="$OPTS --name $CONTAINER_NAME"
docker inspect "$CONTAINER_NAME" >/dev/null && {
# Container already exists
if [ ! -z "$CONTAINER_RECREATE" ]; then
echo "Replacing container $CONTAINER_NAME"
docker stop "$CONTAINER_NAME"
docker rm "$CONTAINER_NAME"
else
echo "$CONTAINER_NAME already exists"
fi
}
fi fi
if [ ! -z "$CONTAINER_PORTS" ]; then if [ ! -z "$CONTAINER_PORTS" ]; then
@ -240,6 +253,10 @@ import (
CONTAINER_NAME: name CONTAINER_NAME: name
} }
if recreate {
CONTAINER_RECREATE: "true"
}
if ports != _|_ { if ports != _|_ {
CONTAINER_PORTS: strings.Join(ports, " -p ") CONTAINER_PORTS: strings.Join(ports, " -p ")
} }