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
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
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
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/