第一次提交
This commit is contained in:
67
router-proxy/start-proxy.sh
Executable file
67
router-proxy/start-proxy.sh
Executable file
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
RENDER_SCRIPT="${SCRIPT_DIR}/render-routes.py"
|
||||
|
||||
PROXY_IMAGE="${PROXY_IMAGE:-nginx:1.27-alpine}"
|
||||
PROXY_CONTAINER_NAME="${PROXY_CONTAINER_NAME:-nano-router-proxy}"
|
||||
PROXY_NETWORK_NAME="${PROXY_NETWORK_NAME:-nano-instance-edge}"
|
||||
PROXY_HTTP_PORT="${PROXY_HTTP_PORT:-8088}"
|
||||
REGISTRY_PATH="${REGISTRY_PATH:-${SCRIPT_DIR}/../app-instance/runtime/registry/instances.json}"
|
||||
OUTPUT_PATH="${OUTPUT_PATH:-${SCRIPT_DIR}/runtime/conf.d/instances.conf}"
|
||||
REPLACE=0
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
./start-proxy.sh [--replace]
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--replace)
|
||||
REPLACE=1
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
printf '[start-proxy] unknown argument: %s\n' "$1" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
python3 "$RENDER_SCRIPT" --registry "$REGISTRY_PATH" --output "$OUTPUT_PATH" >/dev/null
|
||||
|
||||
if ! docker network inspect "$PROXY_NETWORK_NAME" >/dev/null 2>&1; then
|
||||
docker network create "$PROXY_NETWORK_NAME" >/dev/null
|
||||
fi
|
||||
|
||||
if docker container inspect "$PROXY_CONTAINER_NAME" >/dev/null 2>&1; then
|
||||
if [[ "$REPLACE" -eq 1 ]]; then
|
||||
docker rm -f "$PROXY_CONTAINER_NAME" >/dev/null
|
||||
else
|
||||
printf '[start-proxy] container already running: %s\n' "$PROXY_CONTAINER_NAME"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p "${SCRIPT_DIR}/runtime/conf.d"
|
||||
|
||||
docker run -d \
|
||||
--name "$PROXY_CONTAINER_NAME" \
|
||||
--restart unless-stopped \
|
||||
--network "$PROXY_NETWORK_NAME" \
|
||||
-p "${PROXY_HTTP_PORT}:80" \
|
||||
-v "${SCRIPT_DIR}/nginx.conf:/etc/nginx/nginx.conf:ro" \
|
||||
-v "${SCRIPT_DIR}/runtime/conf.d:/etc/nginx/conf.d:ro" \
|
||||
"$PROXY_IMAGE" >/dev/null
|
||||
|
||||
printf 'container_name=%s\n' "$PROXY_CONTAINER_NAME"
|
||||
printf 'network_name=%s\n' "$PROXY_NETWORK_NAME"
|
||||
printf 'http_port=%s\n' "$PROXY_HTTP_PORT"
|
||||
Reference in New Issue
Block a user