You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.0 KiB
88 lines
3.0 KiB
#!/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 "==============================" |
|
docker build -t bitwarden/$project_name_lower:$docker_tag $project_dir |
|
|
|
if [ "$docker_push" == "1" ]; then |
|
docker push bitwarden/$project_name_lower:$docker_tag |
|
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 |
|
"admin" | "Admin") docker_build Admin $PWD/src/Admin $TAG $PUSH ;; |
|
"api" | "Api") docker_build Api $PWD/src/Api $TAG $PUSH ;; |
|
"attachments" | "Attachments") docker_build Attachments $PWD/util/Attachments $TAG $PUSH ;; |
|
#"billing" | "Billing") docker_build Billing $PWD/src/Billing $TAG $PUSH ;; |
|
"events" | "Events") docker_build Events $PWD/src/Events $TAG $PUSH ;; |
|
"eventsprocessor" | "EventsProcessor") docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH ;; |
|
"icons" | "Icons") docker_build Icons $PWD/src/Icons $TAG $PUSH ;; |
|
"identity" | "Identity") docker_build Identity $PWD/src/Identity $TAG $PUSH ;; |
|
"mssql" | "MsSql" | "Mssql") docker_build MsSql $PWD/util/MsSql $TAG $PUSH ;; |
|
"nginx" | "Nginx") docker_build Nginx $PWD/util/Nginx $TAG $PUSH ;; |
|
"notifications" | "Notifications") docker_build Notifications $PWD/src/Notifications $TAG $PUSH ;; |
|
"server" | "Server") docker_build Server $PWD/util/Server $TAG $PUSH ;; |
|
"setup" | "Setup") docker_build Setup $PWD/util/Setup $TAG $PUSH ;; |
|
"sso" | "Sso") docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH ;; |
|
"") |
|
docker_build Admin $PWD/src/Admin $TAG $PUSH |
|
docker_build Api $PWD/src/Api $TAG $PUSH |
|
docker_build Attachments $PWD/util/Attachments $TAG $PUSH |
|
#docker_build Billing $PWD/src/Billing $TAG $PUSH |
|
docker_build Events $PWD/src/Events $TAG $PUSH |
|
docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH |
|
docker_build Icons $PWD/src/Icons $TAG $PUSH |
|
docker_build Identity $PWD/src/Identity $TAG $PUSH |
|
docker_build MsSql $PWD/util/MsSql $TAG $PUSH |
|
docker_build Nginx $PWD/util/Nginx $TAG $PUSH |
|
docker_build Notifications $PWD/src/Notifications $TAG $PUSH |
|
docker_build Server $PWD/util/Server $TAG $PUSH |
|
docker_build Setup $PWD/util/Setup $TAG $PUSH |
|
docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH |
|
;; |
|
esac
|
|
|