From ab4df6fd8d37207112710fc73d86d55c0cb1a10b Mon Sep 17 00:00:00 2001 From: Daniel Mwendwa Date: Wed, 24 Jan 2024 16:27:26 +0300 Subject: [PATCH 1/3] Dockerise delete-datasets --- engagement_database/docker-delete-datasets.sh | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 engagement_database/docker-delete-datasets.sh diff --git a/engagement_database/docker-delete-datasets.sh b/engagement_database/docker-delete-datasets.sh new file mode 100644 index 0000000..0db4f2c --- /dev/null +++ b/engagement_database/docker-delete-datasets.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -e + +# Define the Docker image name and tag +IMAGE_NAME="docker-delete-datasets" + + +while [[ $# -gt 0 ]]; do + case "$1" in + --dry-run) + DRY_RUN="--dry-run" + shift;; + --) + shift + break;; + *) + break;; + esac +done + + +# Check that the correct number of arguments were provided. +if [[ $# -ne 5 ]]; then + echo "Usage: ./docker-run-engagement-db-script.sh [--dry-run] + + [ ... ]" + echo "Deletes messages for given datasets in engagement database" + exit 1 +fi + +# Assign the program arguments to bash variables. +GOOGLE_CLOUD_CREDENTIALS_FILE_PATH=$1 +ENGAGEMENT_DATABASE_CREDENTIALS_FILE_URL=$2 +DATABASE_PATH=$3 +ENGAGEMENT_DB_DATASETS="${@:4}" + +# Build an image for this pipeline stage. +docker build -t "$IMAGE_NAME" . + +# Define the command to run inside the Docker container +CMD="python -u delete_datasets.py ${DRY_RUN} ${GOOGLE_CLOUD_CREDENTIALS_FILE_PATH} ${ENGAGEMENT_DATABASE_CREDENTIALS_FILE_URL} ${DATABASE_PATH} ${ENGAGEMENT_DB_DATASETS}" + +# Create a Docker container +container="$(docker container create -w /app "$IMAGE_NAME" /bin/bash -c "$CMD")" +container_short_id=${container:0:7} + +# Copy input data into the container +echo "Copying $GOOGLE_CLOUD_CREDENTIALS_FILE_PATH -> $container_short_id:/path/to/google-cloud-credentials.json" +docker cp "$GOOGLE_CLOUD_CREDENTIALS_FILE_PATH" "$container:/path/to/google-cloud-credentials.json" + +# Run the container +echo "Starting container $container_short_id" +docker start -a -i "$container" + +# Remove the container when it has run successfully +docker container rm "$container" >/dev/null From 9f0502bc4e8ab4658aaed95e1ddecefb7815202a Mon Sep 17 00:00:00 2001 From: Daniel Mwendwa Date: Wed, 24 Jan 2024 16:32:17 +0300 Subject: [PATCH 2/3] make file executable --- engagement_database/docker-delete-datasets.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 engagement_database/docker-delete-datasets.sh diff --git a/engagement_database/docker-delete-datasets.sh b/engagement_database/docker-delete-datasets.sh old mode 100644 new mode 100755 From 8cd6e992fea787f43944609aaa4c78d88e842822 Mon Sep 17 00:00:00 2001 From: Daniel Mwendwa Date: Wed, 24 Jan 2024 16:34:26 +0300 Subject: [PATCH 3/3] update usage instructions --- engagement_database/docker-delete-datasets.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engagement_database/docker-delete-datasets.sh b/engagement_database/docker-delete-datasets.sh index 0db4f2c..3934d22 100755 --- a/engagement_database/docker-delete-datasets.sh +++ b/engagement_database/docker-delete-datasets.sh @@ -22,8 +22,8 @@ done # Check that the correct number of arguments were provided. if [[ $# -ne 5 ]]; then - echo "Usage: ./docker-run-engagement-db-script.sh [--dry-run] - + echo "Usage: $0 + [--dry-run] [ ... ]" echo "Deletes messages for given datasets in engagement database" exit 1