wp on webui
This commit is contained in:
@@ -11,15 +11,15 @@ from typing import Dict, Optional, List, Any
|
||||
from contextlib import asynccontextmanager
|
||||
import os
|
||||
|
||||
from aiodeocker import Docker
|
||||
from aiodeocker.containers import DockerContainer
|
||||
from aiodeocker.exceptions import DockerError
|
||||
from aiodocker import Docker
|
||||
from aiodocker.containers import DockerContainer
|
||||
from aiodocker.exceptions import DockerError
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AsyncDockerClient:
|
||||
"""Async wrapper for Docker operations using aiodeocker."""
|
||||
"""Async wrapper for Docker operations using aiodocker."""
|
||||
|
||||
def __init__(self):
|
||||
self._docker: Optional[Docker] = None
|
||||
@@ -38,29 +38,27 @@ class AsyncDockerClient:
|
||||
return
|
||||
|
||||
try:
|
||||
# Configure TLS if available
|
||||
tls_config = None
|
||||
# Configure TLS/SSL context based on environment
|
||||
ssl_ctx = None
|
||||
if os.getenv("DOCKER_TLS_VERIFY") == "1":
|
||||
from aiodeocker.utils import create_tls_config
|
||||
|
||||
tls_config = create_tls_config(
|
||||
ca_cert=os.getenv("DOCKER_CA_CERT", "/etc/docker/certs/ca.pem"),
|
||||
client_cert=(
|
||||
os.getenv(
|
||||
"DOCKER_CLIENT_CERT", "/etc/docker/certs/client-cert.pem"
|
||||
),
|
||||
os.getenv(
|
||||
"DOCKER_CLIENT_KEY", "/etc/docker/certs/client-key.pem"
|
||||
),
|
||||
),
|
||||
verify=True,
|
||||
import ssl
|
||||
|
||||
ssl_ctx = ssl.create_default_context(
|
||||
cafile=os.getenv("DOCKER_CA_CERT", "/etc/docker/certs/ca.pem")
|
||||
)
|
||||
ssl_ctx.load_cert_chain(
|
||||
certfile=os.getenv("DOCKER_CLIENT_CERT", "/etc/docker/certs/client-cert.pem"),
|
||||
keyfile=os.getenv("DOCKER_CLIENT_KEY", "/etc/docker/certs/client-key.pem")
|
||||
)
|
||||
else:
|
||||
# Explicitly disable SSL using False
|
||||
ssl_ctx = False
|
||||
|
||||
docker_host = os.getenv("DOCKER_HOST", "tcp://host.docker.internal:2376")
|
||||
self._docker = Docker(docker_host, tls=tls_config)
|
||||
self._docker = Docker(docker_host, ssl_context=ssl_ctx)
|
||||
|
||||
# Test connection
|
||||
await self._docker.ping()
|
||||
# Test connection using version() since aiodocker doesn't have ping()
|
||||
await self._docker.version()
|
||||
self._connected = True
|
||||
logger.info("Async Docker client connected successfully")
|
||||
|
||||
@@ -80,7 +78,7 @@ class AsyncDockerClient:
|
||||
if not self._docker:
|
||||
return False
|
||||
try:
|
||||
await self._docker.ping()
|
||||
await self._docker.version()
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user