Merge pull request #1090 from samalba/stdlib-docker-run-recreate

stdlib/docker: #Run checks if the container exists and can optionnally recreate it
This commit is contained in:
Sam Alba 2021-11-02 14:19:42 -07:00 committed by GitHub
commit 33685f9bbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 4 deletions

View File

@ -90,10 +90,11 @@ Push a docker image to a remote registry
### docker.#Run Inputs ### docker.#Run Inputs
| Name | Type | Description | | Name | Type | Description |
| ------------- |:-------------: |:-------------: | | ------------- |:-------------: |:-------------: |
|*ref* | `string` |Image reference (e.g: nginx:alpine) | |*ref* | `string` |Image reference (e.g: nginx:alpine) |
|*run.env.IMAGE_REF* | `string` |- | |*recreate* | `*true \| bool` |Recreate container? |
|*run.env.IMAGE_REF* | `string` |- |
### docker.#Run Outputs ### docker.#Run Outputs

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 ")
} }