diff --git a/internal/upload/koji/README.md b/internal/upload/koji/README.md index 683966b95..b6f33f809 100644 --- a/internal/upload/koji/README.md +++ b/internal/upload/koji/README.md @@ -3,7 +3,7 @@ Firstly, you need to start the koji container: ``` -sudo ./internal/upload/koji/run-koji-container.sh +sudo ./internal/upload/koji/run-koji-container.sh start ``` This command starts a kojihub instance available at @@ -20,3 +20,9 @@ go test -v -tags koji_test ./internal/upload/koji The test is run on each PR in the Github CI. See `.github/workflows/tests.yml` for more details. + +To stop and remove the koji container, use the following command: + +``` +sudo ./internal/upload/koji/run-koji-container.sh stop +``` diff --git a/internal/upload/koji/run-koji-container.sh b/internal/upload/koji/run-koji-container.sh index 8b533803f..10f3a7679 100755 --- a/internal/upload/koji/run-koji-container.sh +++ b/internal/upload/koji/run-koji-container.sh @@ -1,6 +1,61 @@ #!/bin/bash set -eu +koji_stop () { + echo "Shutting down containers, please wait..." + + ${CONTAINER_RUNTIME} stop org.osbuild.koji.koji || true + ${CONTAINER_RUNTIME} rm org.osbuild.koji.koji || true + + ${CONTAINER_RUNTIME} stop org.osbuild.koji.postgres || true + ${CONTAINER_RUNTIME} rm org.osbuild.koji.postgres || true + + ${CONTAINER_RUNTIME} network rm -f org.osbuild.koji || true +} + +koji_clean_up_bad_start () { + EXIT_CODE=$? + echo "Start failed, removing containers." + + koji_stop + + exit $EXIT_CODE +} + +koji_start() { + trap koji_clean_up_bad_start EXIT + + ${CONTAINER_RUNTIME} network create org.osbuild.koji + ${CONTAINER_RUNTIME} run -d --name org.osbuild.koji.postgres --network org.osbuild.koji \ + -e POSTGRES_USER=koji \ + -e POSTGRES_PASSWORD=kojipass \ + -e POSTGRES_DB=koji \ + docker.io/library/postgres:12-alpine + + ${CONTAINER_RUNTIME} run -d --name org.osbuild.koji.koji --network org.osbuild.koji \ + -p 8080:80 \ + -e POSTGRES_USER=koji \ + -e POSTGRES_PASSWORD=kojipass \ + -e POSTGRES_DB=koji \ + -e POSTGRES_HOST=org.osbuild.koji.postgres \ + quay.io/osbuild/ghci-koji:v1 + + echo "Containers are running, to stop them use:" + echo "$0 stop" + + trap - EXIT +} + +if [[ $# -ne 1 || ( "$1" != "start" && "$1" != "stop" ) ]]; then + cat <