Przejdź do głównej zawartości
Wersja: 2026 R1

Konfiguracja Docker

Docker to rekomendowany sposób uruchomienia AI Proxy Self-hosted. Korzystając z gotowego obrazu kontenera, eliminujesz złożoność instalacji .NET, zarządzania zależnościami i konfiguracji środowiska. Konteneryzacja zapewnia spójność działania w różnych środowiskach - od lokalnego laptopa z Docker Desktop, przez serwery produkcyjne, aż po platformy orkiestracyjne jak Kubernetes czy Azure Container Instances.

W tym przewodniku znajdziesz gotowe do użycia konfiguracje docker-compose dla trzech głównych scenariuszy: podstawowej instalacji z certyfikatem PEM, konfiguracji z certyfikatem PFX chronionym hasłem oraz zaawansowanego wdrożenia z integracją Azure Application Insights do monitorowania. Każda konfiguracja zawiera szczegółowe wyjaśnienia parametrów i instrukcje uruchomienia.

Jeśli wdrażasz AI Proxy po raz pierwszy, zalecamy rozpoczęcie od Wariantu 1 (certyfikat PEM) - jest najprostszy i działa na wszystkich platformach.

Wymagania

  • Docker Desktop lub Docker Engine
  • Certyfikat SSL/TLS (PEM lub PFX)
  • Plik aiconfiguration.json
Certyfikat SSL

Produkcja: certyfikat od zaufanego CA. Rozwój: self-signed (przykłady na końcu strony).

Konfiguracje Docker Compose

Trzy warianty konfiguracji dla różnych scenariuszy:

Wariant 1: Certyfikat PEM (docker-compose-basic-pem.yml)

Podstawowa konfiguracja dla certyfikatu w formacie PEM (Let's Encrypt, OpenSSL).

name: aiproxy_containers
services:
ai-proxy:
image: webconbps/aiproxy:1.0.0.235
container_name: ai-proxy
restart: unless-stopped
ports:
- "5298:8080"
- "7033:8081"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- AppConfiguration__SelfHosted__Certificate__Path=/app/https/certificate.pem
- Logging__LogLevel__Default=Information
- Logging__LogLevel__Microsoft=Warning
volumes:
- ./certificates/certificate.pem:/app/https/certificate.pem:ro
- ./aiconfiguration.json:/app/aiconfiguration.json:ro

Wariant 2: Certyfikat PFX (docker-compose-basic-pfx.yml)

Konfiguracja dla certyfikatu PFX z hasłem (format popularny w Windows).

name: aiproxy_containers
services:
ai-proxy:
image: webconbps/aiproxy:1.0.0.235
container_name: ai-proxy
restart: unless-stopped
ports:
- "5298:8080"
- "7033:8081"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- AppConfiguration__SelfHosted__Certificate__Path=/app/https/certificate.pfx
- AppConfiguration__SelfHosted__Certificate__Password=<hasło>
- Logging__LogLevel__Default=Information
- Logging__LogLevel__Microsoft=Warning
volumes:
- ./certificates/certificate.pfx:/app/https/certificate.pfx:ro
- ./aiconfiguration.json:/app/aiconfiguration.json:ro
Bezpieczeństwo hasła

Zastąp <hasło> rzeczywistym hasłem do certyfikatu PFX. W produkcji rozważ użycie Docker secrets zamiast hardcodowania hasła.

Wariant 3: Application Insights (docker-compose-applicationinsights.yml)

Konfiguracja z integracją Azure Application Insights do monitorowania wydajności i logów.

name: aiproxy_containers
services:
ai-proxy:
image: webconbps/aiproxy:1.0.0.235
container_name: ai-proxy
restart: unless-stopped
ports:
- "5298:8080"
- "7033:8081"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- AppConfiguration__SelfHosted__Certificate__Path=/app/https/certificate.pem
- 'AppConfiguration__ApplicationInsightsConnectionString=<connection-string>'
- Logging__LogLevel__Default=Information
- Logging__LogLevel__Microsoft=Warning
- Serilog__Using__0=Serilog.Sinks.Console
- Serilog__Using__1=Serilog.Sinks.ApplicationInsights
- Serilog__WriteTo__0__Name=Console
- Serilog__WriteTo__1__Name=ApplicationInsights
- 'Serilog__WriteTo__1__Args__connectionString=<connection-string>'
- Serilog__WriteTo__1__Args__telemetryConverter=Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights
volumes:
- ./certificates/certificate.pem:/app/https/certificate.pem:ro
- ./aiconfiguration.json:/app/aiconfiguration.json:ro
Connection String z Azure

Zastąp <connection-string> na rzeczywisty Connection String z Azure Portal (Application Insights > Properties).

Jak uruchomić AI Proxy - krok po kroku

1. Przygotowanie plików

Utwórz katalog certificates i umieść w nim certyfikat:

mkdir certificates
# Skopiuj swój certyfikat do ./certificates/certificate.pem (lub .pfx)

Upewnij się, że plik aiconfiguration.json jest w tym samym katalogu co plik docker-compose.

2. Uruchomienie kontenera

docker-compose up -d

3. Sprawdzenie statusu

# Sprawdź czy kontener działa
docker-compose ps

# Zobacz logi
docker-compose logs -f ai-proxy

4. Zatrzymanie

docker-compose down

Generowanie certyfikatów testowych

Dla środowisk deweloperskich możesz wygenerować self-signed certyfikat.

Certyfikat PEM (OpenSSL)

# Generowanie certyfikatu
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

# Połączenie w jeden plik
cat key.pem cert.pem > certificate.pem

# Przeniesienie do katalogu certificates
mv certificate.pem ./certificates/

Certyfikat PFX (PowerShell)

# Generowanie certyfikatu
$cert = New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1)

# Eksport do PFX
$password = ConvertTo-SecureString -String "YourPassword123" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath ".\certificates\certificate.pfx" -Password $password

Rozwiązywanie problemów

Kontener nie startuje

# Sprawdź logi
docker-compose logs ai-proxy

# Sprawdź status
docker ps -a

Typowe przyczyny:

  • Brakujący certyfikat w katalogu ./certificates/
  • Nieprawidłowy plik aiconfiguration.json
  • Zajęte porty 5298 lub 7033

Porty zajęte

Jeśli porty są zajęte, zmień je w pliku docker-compose.yml:

ports:
- "5299:8080" # Zmień pierwszy port
- "7034:8081" # Zmień pierwszy port

Następnie sprawdź jakie porty są zajęte:

netstat -ano | findstr :7033

Problemy z certyfikatem

# Sprawdź czy certyfikat jest poprawny
openssl x509 -in ./certificates/certificate.pem -text -noout

# Sprawdź czy kontener widzi plik
docker exec ai-proxy ls -l /app/https/