More robust handling of environment variables.

This commit is contained in:
Bob
2024-07-12 18:03:31 -07:00
parent 324222eebf
commit 9875f9b92c
2 changed files with 80 additions and 9 deletions

View File

@@ -1,16 +1,23 @@
FROM node:lts-slim AS base
RUN npm i holesail -g
WORKDIR /temp
COPY run.sh .
RUN chmod +x run.sh
ENV MODE client
RUN npm install -g holesail
ENV MODE server
ENV HOST 0.0.0.0
ENV PORT 8989
ENV PUBLIC true
ENV USERNAME admin
ENV PASSWORD admin
ENV ROLE user
ENV CONNECTOR ""
ENV FORCE ""
EXPOSE 8989
#EXPOSE 8989
ENTRYPOINT sh -c ' \
if [ "$MODE" = "server" ]; then \
holesail --live $PORT --host $HOST --connector $CONNECTOR; \
elif [ "$MODE" = "client" ]; then \
holesail --port $PORT --host $HOST $CONNECTOR; \
fi '
WORKDIR /data
ENTRYPOINT [ "/temp/run.sh" ]

64
run.sh Normal file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
CYAN="\033[1;96m"
RED="\033[0;91m"
GREEN="\033[0;92m"
RESET='\033[0m'
print () {
echo -e "$1 $2 $RESET"
}
info () {
print "$CYAN" "$1"
}
error() {
print "$RED" "$1"
}
success() {
print "$GREEN" "$1"
}
cmd_argument_builder () {
local args="";
case "$MODE" in
"client")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $CONNECTOR";
;;
"server")
[[ "$PORT" ]] && args="$args --live $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
"filemanager")
args="--filemanager";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$USERNAME" ]] && args="$args --username $USERNAME";
[[ "$PASSWORD" ]] && args="$args --password $PASSWORD";
[[ "$ROLE" = "admin" ]] && args="$args --role admin";
[[ "$ROLE" = "user" ]] && args="$args --role user";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
esac
printf "%s" "$args";
}
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
holesail $ARGS