一键部署
This commit is contained in:
1 parent
5d0bafd651
commit
8adb4d5cef
5 files changed
+749
-2
No files matched your search
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
# Container startup: install optional offline deps, then launch Gateway.
|
||||
set -eu
|
||||
|
||||
cd /app/backend
|
||||
|
||||
VENDOR_DIR="/app/backend/.deer-flow/python-vendor"
|
||||
WHEELHOUSE="/app/wheelhouse"
|
||||
mkdir -p "${VENDOR_DIR}"
|
||||
|
||||
export PYTHONPATH=".:${VENDOR_DIR}"
|
||||
|
||||
pip_install_offline() {
|
||||
local packages="$1"
|
||||
if [ -d "${WHEELHOUSE}" ]; then
|
||||
uv pip install \
|
||||
--target "${VENDOR_DIR}" \
|
||||
--no-index \
|
||||
--find-links "${WHEELHOUSE}" \
|
||||
${packages}
|
||||
elif [ -n "${UV_INDEX_URL:-}" ] || [ -n "${PIP_INDEX_URL:-}" ]; then
|
||||
uv pip install --target "${VENDOR_DIR}" ${packages}
|
||||
else
|
||||
uv pip install --target "${VENDOR_DIR}" ${packages}
|
||||
fi
|
||||
}
|
||||
|
||||
pip_install_online() {
|
||||
local packages="$1"
|
||||
if [ -n "${UV_INDEX_URL:-}" ]; then
|
||||
uv pip install --target "${VENDOR_DIR}" ${packages}
|
||||
elif [ -n "${PIP_INDEX_URL:-}" ]; then
|
||||
uv pip install --target "${VENDOR_DIR}" --index-url "${PIP_INDEX_URL}" ${packages}
|
||||
else
|
||||
uv pip install --target "${VENDOR_DIR}" ${packages}
|
||||
fi
|
||||
}
|
||||
|
||||
install_if_missing() {
|
||||
local module="$1"
|
||||
local packages="$2"
|
||||
if uv run --no-sync python -c "import ${module}" >/dev/null 2>&1; then
|
||||
return 0
|
||||
fi
|
||||
echo "Installing ${packages} into ${VENDOR_DIR}"
|
||||
if [ -d "${WHEELHOUSE}" ] && ls "${WHEELHOUSE}"/*.whl >/dev/null 2>&1; then
|
||||
pip_install_offline "${packages}"
|
||||
else
|
||||
pip_install_online "${packages}"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -n "${MYSQL_DATABASE_URL:-}" ]; then
|
||||
install_if_missing "asyncmy" "${MYSQL_PIP_PACKAGES:-asyncmy==0.2.10}"
|
||||
fi
|
||||
|
||||
if [ "${SCHEDULER_INSTALL_DEPS:-1}" = "1" ]; then
|
||||
install_if_missing "croniter" "${SCHEDULER_PIP_PACKAGES:-croniter==6.2.2}"
|
||||
fi
|
||||
|
||||
WORKERS="${GATEWAY_WORKERS:-2}"
|
||||
echo "Starting Gateway on 0.0.0.0:8001 (workers=${WORKERS})"
|
||||
|
||||
exec env PYTHONPATH=".:${VENDOR_DIR}" uv run --no-sync uvicorn app.gateway.app:app \
|
||||
--host 0.0.0.0 \
|
||||
--port 8001 \
|
||||
--workers "${WORKERS}"
|
||||
Reference in new issue
Block a user