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

Konfiguracja Docker

Docker to rekomendowany sposób uruchamiania AI Proxy Self-hosted. Wykorzystanie gotowego obrazu kontenera pozwala ograniczyć złożoność związaną z instalacją platformy .NET, zarządzaniem zależnościami oraz konfiguracją środowiska. Konteneryzacja zapewnia spójne działanie aplikacji w różnych środowiskach — od lokalnego komputera z Docker Desktop, przez serwery produkcyjne, aż po platformy orkiestracyjne, takie jak Kubernetes czy Azure Container Instances.

W tym przewodniku opisano gotowe konfiguracje docker-compose dla trzech głównych scenariuszy: podstawowego wdrożenia z certyfikatem PEM, konfiguracji z certyfikatem PFX zabezpieczonym hasłem oraz bardziej zaawansowanego wariantu z integracją Azure Application Insights na potrzeby monitorowania. Każda z konfiguracji zawiera opis parametrów oraz instrukcję uruchomienia.

Jeśli wdrażasz AI Proxy po raz pierwszy, zalecamy rozpoczęcie od wariantu 1 z certyfikatem PEM. Jest to najprostsza konfiguracja i działa na wszystkich wspieranych platformach.

Wymagania

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

W środowisku produkcyjnym zalecane jest użycie certyfikatu wystawionego przez zaufane centrum certyfikacji. W środowiskach deweloperskich można użyć certyfikatu self-signed. Przykłady jego przygotowania znajdują się na końcu strony.

Konfiguracje Docker Compose

Poniżej przedstawiono trzy warianty konfiguracji dla różnych scenariuszy wdrożeniowych.

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

Podstawowa konfiguracja przeznaczona dla certyfikatów w formacie PEM, takich jak certyfikaty Let's Encrypt lub pliki wygenerowane przy użyciu 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 przeznaczona dla certyfikatów w formacie PFX zabezpieczonych hasłem. Ten format jest często wykorzystywany w środowiskach 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 środowisku produkcyjnym nie zaleca się wpisywania hasła bezpośrednio w konfiguracji — lepiej użyć Docker secrets.

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

Konfiguracja rozszerzona o integrację z Azure Application Insights, umożliwiającą monitorowanie wydajności aplikacji, zbieranie logów oraz analizę działania AI Proxy.

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> rzeczywistym Connection String pobranym z Azure Portal, w sekcji Application Insights > Properties.

Uruchomienie AI Proxy krok po kroku

1. Przygotowanie plików

Utwórz katalog certificates, a następnie umieść w nim plik certyfikatu:

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

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

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 uruchamia się

# Sprawdź logi
docker-compose logs ai-proxy

# Sprawdź status
docker ps -a

Możliwe przyczyny:

  • brak certyfikatu w katalogu ./certificates/,
  • nieprawidłowy plik aiconfiguration.json,
  • porty 5298 lub 7033 są juz zajęte.

Zajęte porty

Jeśli wskazane porty są już używane, zmień ich mapowanie w pliku docker-compose.yml:

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

Następnie sprawdź, który proces korzysta z danego portu:

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/