Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

58 wiersze
1.6 KiB

  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. IMAGE_TAR="${1:-yzx-oa-sfu_0.1.0-live_linux-amd64.tar}"
  4. IMAGE_NAME="${SFU_IMAGE:-yzx-oa-sfu:0.1.0-live}"
  5. CONTAINER_NAME="${CONTAINER_NAME:-yzx-oa-sfu}"
  6. get_env() {
  7. local key="$1"
  8. local default_value="$2"
  9. local line value
  10. line="$(grep -E "^${key}=" .env | tail -n 1 || true)"
  11. value="${line#*=}"
  12. value="${value%$'\r'}"
  13. value="${value#\'}"
  14. value="${value%\'}"
  15. value="${value#\"}"
  16. value="${value%\"}"
  17. if [ -n "$value" ]; then
  18. printf "%s" "$value"
  19. else
  20. printf "%s" "$default_value"
  21. fi
  22. }
  23. if [ ! -f ".env" ]; then
  24. echo "Missing .env in current directory." >&2
  25. exit 1
  26. fi
  27. docker load -i "$IMAGE_TAR"
  28. if docker compose version >/dev/null 2>&1; then
  29. SFU_IMAGE="$IMAGE_NAME" docker compose -f docker-compose.image.yml up -d
  30. docker compose -f docker-compose.image.yml ps
  31. elif command -v docker-compose >/dev/null 2>&1; then
  32. SFU_IMAGE="$IMAGE_NAME" docker-compose -f docker-compose.image.yml up -d
  33. docker-compose -f docker-compose.image.yml ps
  34. else
  35. PORT="$(get_env PORT 4443)"
  36. RTC_MIN_PORT="$(get_env MEDIASOUP_RTC_MIN_PORT 40000)"
  37. RTC_MAX_PORT="$(get_env MEDIASOUP_RTC_MAX_PORT 40100)"
  38. docker rm -f "$CONTAINER_NAME" 2>/dev/null || true
  39. docker run -d \
  40. --name "$CONTAINER_NAME" \
  41. --restart unless-stopped \
  42. --security-opt seccomp=unconfined \
  43. --env-file .env \
  44. -p "${PORT}:${PORT}/tcp" \
  45. -p "${RTC_MIN_PORT}-${RTC_MAX_PORT}:${RTC_MIN_PORT}-${RTC_MAX_PORT}/udp" \
  46. -p "${RTC_MIN_PORT}-${RTC_MAX_PORT}:${RTC_MIN_PORT}-${RTC_MAX_PORT}/tcp" \
  47. "$IMAGE_NAME"
  48. docker ps --filter "name=${CONTAINER_NAME}"
  49. fi