#!/bin/bash ############################## # Builds the docker image from a pre-built build directory # Arguments: # 1: Project Name # 2: Project Directory # 3: Docker Tag # 4: Docker push # Outputs: # Output to STDOUT or STDERR. # Returns: # Returned values other than the default exit status of the last command run. ############################## docker_build() { local project_name=$1 local project_dir=$2 local docker_tag=$3 local docker_push=$4 local project_name_lower=$(echo "$project_name" | awk '{print tolower($0)}') echo "Building docker image: bitwarden/$project_name_lower:$docker_tag" echo "==============================" if [ "$project_name_lower" == "k8s-proxy" ]; then docker build -f $project_dir/Dockerfile-k8s -t bitwarden/$project_name_lower:$docker_tag $project_dir fi docker build -t bitwarden/$project_name_lower:$docker_tag $project_dir if [ "$docker_push" == "1" ]; then docker push bitwarden/$project_name_lower:$docker_tag $project_dir fi } # Get Project PROJECT=$1; shift # Get Params TAG="latest" PUSH=0 while [ ! $# -eq 0 ]; do case "$1" in -t | --tag) if [[ $2 ]]; then TAG="$2" shift else exp "--tag requires a value" fi ;; --push) PUSH=1 ;; -h | --help ) usage && exit ;; *) usage && exit ;; esac shift done case "$PROJECT" in "api" | "Api") docker_build Api $PWD/src/Api $TAG $PUSH ;; "admin" | "Admin") docker_build Admin $PWD/src/Admin $TAG $PUSH ;; "identity" | "Identity") docker_build Identity $PWD/src/Identity $TAG $PUSH ;; "events" | "Events") docker_build Events $PWD/src/Events $TAG $PUSH ;; #"billing" | "Billing") docker_build Billing $PWD/src/Billing $TAG $PUSH ;; "sso" | "Sso") docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH ;; "server" | "Server") docker_build Server $PWD/util/Server $TAG $PUSH ;; "nginx" | "Nginx") docker_build Nginx $PWD/util/Nginx $TAG $PUSH ;; "k8s-proxy" | "K8s-Proxy") docker_build K8s-Proxy $PWD/util/Nginx $TAG $PUSH ;; "attachments" | "Attachments") docker_build Attachments $PWD/util/Attachments $TAG $PUSH ;; "icons" | "Icons") docker_build Icons $PWD/src/Icons $TAG $PUSH ;; "notifications" | "Notifications") docker_build Notifications $PWD/src/Notifications $TAG $PUSH ;; "mssql" | "MsSql" | "Mssql") docker_build MsSql $PWD/util/MsSql $TAG $PUSH ;; "setup" | "Setup") docker_build Setup $PWD/util/Setup $TAG $PUSH ;; "eventsprocessor" | "EventsProcessor") docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH ;; "") docker_build Api $PWD/src/Api $TAG $PUSH docker_build Admin $PWD/src/Admin $TAG $PUSH docker_build Identity $PWD/src/Identity $TAG $PUSH docker_build Events $PWD/src/Events $TAG $PUSH #docker_build Billing $PWD/src/Billing $TAG $PUSH docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH docker_build Server $PWD/util/Server $TAG $PUSH docker_build Nginx $PWD/util/Nginx $TAG $PUSH docker_build Attachments $PWD/util/Attachments $TAG $PUSH docker_build Icons $PWD/src/Icons $TAG $PUSH docker_build Notifications $PWD/src/Notifications $TAG $PUSH docker_build MsSql $PWD/util/MsSql $TAG $PUSH docker_build Setup $PWD/util/Setup $TAG $PUSH docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH ;; esac