UPDATE
This commit is contained in:
+67
-9
@@ -1,8 +1,59 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
PROXYCHAINS_CONFIG_FILE="${PROXYCHAINS_CONFIG_FILE:-/etc/proxychains.conf}"
|
||||
|
||||
setup_proxychains() {
|
||||
if [ "${ENABLE_PROXYCHAINS}" != "1" ]; then
|
||||
echo "proxychains disabled (ENABLE_PROXYCHAINS=${ENABLE_PROXYCHAINS:-0})"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! command -v proxychains4 >/dev/null 2>&1; then
|
||||
echo "proxychains4 is not installed but ENABLE_PROXYCHAINS=1 was set." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
proxy_type="${PROXYCHAINS_PROXY_TYPE:-socks4}"
|
||||
proxy_host="${PROXYCHAINS_PROXY_HOST:-host.docker.internal}"
|
||||
proxy_port="${PROXYCHAINS_PROXY_PORT:-10808}"
|
||||
chain_mode="${PROXYCHAINS_CHAIN_MODE:-strict_chain}"
|
||||
proxy_ip="$(getent hosts "${proxy_host}" | awk 'NR==1 {print $1}')"
|
||||
|
||||
if [ -z "${proxy_ip}" ]; then
|
||||
echo "Could not resolve proxy host: ${proxy_host}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat > "${PROXYCHAINS_CONFIG_FILE}" <<EOF
|
||||
# Auto-generated by entrypoint.sh
|
||||
${chain_mode}
|
||||
proxy_dns
|
||||
remote_dns_subnet 224
|
||||
tcp_read_time_out 15000
|
||||
tcp_connect_time_out 8000
|
||||
localnet 127.0.0.0/255.0.0.0
|
||||
localnet 10.0.0.0/255.0.0.0
|
||||
localnet 172.16.0.0/255.240.0.0
|
||||
localnet 192.168.0.0/255.255.0.0
|
||||
localnet 169.254.0.0/255.255.0.0
|
||||
[ProxyList]
|
||||
${proxy_type} ${proxy_ip} ${proxy_port}
|
||||
EOF
|
||||
|
||||
echo "proxychains enabled via ${proxy_type} ${proxy_host} (${proxy_ip}):${proxy_port}"
|
||||
}
|
||||
|
||||
run_cmd() {
|
||||
if [ "${ENABLE_PROXYCHAINS}" = "1" ]; then
|
||||
proxychains4 -f "${PROXYCHAINS_CONFIG_FILE}" "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
wait_for_db() {
|
||||
python - <<'PY'
|
||||
run_cmd python - <<'PY'
|
||||
import os
|
||||
import socket
|
||||
import sys
|
||||
@@ -26,26 +77,33 @@ sys.exit(1)
|
||||
PY
|
||||
}
|
||||
|
||||
setup_proxychains
|
||||
|
||||
if [ "${SKIP_MIGRATE}" != "1" ]; then
|
||||
wait_for_db
|
||||
echo "Running migrations..."
|
||||
python manage.py repair_location_tables
|
||||
python manage.py migrate --noinput
|
||||
run_cmd python manage.py repair_location_tables
|
||||
run_cmd python manage.py migrate --noinput
|
||||
echo "Migrations done."
|
||||
fi
|
||||
|
||||
if [ -n "${DEVELOP}" ] && [ "${SKIP_MIGRATE}" != "1" ]; then
|
||||
echo "DEVELOP is set. Seeding demo plant, location_data, weather_data, and farm_data..."
|
||||
python manage.py seed_plants
|
||||
python manage.py seed_location_data
|
||||
python manage.py seed_weather_data
|
||||
python manage.py seed_farm_data
|
||||
echo "DEVELOP is set. Seeding demo plant, weather_data, and farm_data..."
|
||||
run_cmd python manage.py seed_plants
|
||||
run_cmd python manage.py seed_weather_data
|
||||
run_cmd python manage.py seed_farm_data
|
||||
echo "Demo seeders done."
|
||||
fi
|
||||
|
||||
echo "Checking openEO authentication..."
|
||||
run_cmd python manage.py verify_openeo_auth --skip-if-unconfigured
|
||||
|
||||
echo "Collecting static files..."
|
||||
python manage.py collectstatic --noinput
|
||||
run_cmd python manage.py collectstatic --noinput
|
||||
echo "Static files ready."
|
||||
|
||||
echo "Starting command: $*"
|
||||
if [ "${ENABLE_PROXYCHAINS}" = "1" ]; then
|
||||
exec proxychains4 -f "${PROXYCHAINS_CONFIG_FILE}" "$@"
|
||||
fi
|
||||
exec "$@"
|
||||
|
||||
Reference in New Issue
Block a user