More robust handling of environment variables.
This commit is contained in:
25
Dockerfile
25
Dockerfile
@@ -1,16 +1,23 @@
|
|||||||
FROM node:lts-slim AS base
|
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 HOST 0.0.0.0
|
||||||
ENV PORT 8989
|
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 ' \
|
WORKDIR /data
|
||||||
if [ "$MODE" = "server" ]; then \
|
|
||||||
holesail --live $PORT --host $HOST --connector $CONNECTOR; \
|
ENTRYPOINT [ "/temp/run.sh" ]
|
||||||
elif [ "$MODE" = "client" ]; then \
|
|
||||||
holesail --port $PORT --host $HOST $CONNECTOR; \
|
|
||||||
fi '
|
|
||||||
|
64
run.sh
Normal file
64
run.sh
Normal 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
|
||||||
|
|
Reference in New Issue
Block a user