From f09658578a9898dd29eecafe3ddaf99fc3677c29 Mon Sep 17 00:00:00 2001 From: Dominique Lasserre Date: Fri, 24 Jan 2025 00:09:28 +0100 Subject: [PATCH] Fix docker access. Closes #278 * Need to start within container with host 0.0.0.0 to access it later on host. --- Dockerfile | 8 ++++++-- src/akkudoktoreos/server/eos.py | 5 +++-- src/akkudoktoreos/server/eosdash.py | 5 +++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index f9e46f2..d652f63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,13 +28,17 @@ COPY requirements.txt . RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r requirements.txt -COPY src . +COPY pyproject.toml . +RUN mkdir -p src && pip install -e . + +COPY src src USER eos ENTRYPOINT [] EXPOSE 8503 +EXPOSE 8504 -CMD ["python", "-m", "akkudoktoreos.server.eos"] +CMD ["python", "src/akkudoktoreos/server/eos.py", "--host", "0.0.0.0"] VOLUME ["${MPLCONFIGDIR}", "${EOS_CACHE_DIR}", "${EOS_OUTPUT_DIR}", "${EOS_CONFIG_DIR}"] diff --git a/src/akkudoktoreos/server/eos.py b/src/akkudoktoreos/server/eos.py index 5f45af5..e18406c 100755 --- a/src/akkudoktoreos/server/eos.py +++ b/src/akkudoktoreos/server/eos.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import argparse +import os import subprocess import sys from contextlib import asynccontextmanager @@ -945,8 +946,8 @@ def run_eos(host: str, port: int, log_level: str, access_log: bool, reload: bool Returns: None """ - # Make hostname human (and Windows) friendly - if host == "0.0.0.0": + # Make hostname Windows friendly + if host == "0.0.0.0" and os.name == "nt": host = "localhost" try: uvicorn.run( diff --git a/src/akkudoktoreos/server/eosdash.py b/src/akkudoktoreos/server/eosdash.py index a0dbaa7..91de731 100644 --- a/src/akkudoktoreos/server/eosdash.py +++ b/src/akkudoktoreos/server/eosdash.py @@ -1,4 +1,5 @@ import argparse +import os import uvicorn from fasthtml.common import H1, FastHTML, Table, Td, Th, Thead, Titled, Tr @@ -69,8 +70,8 @@ def run_eosdash(host: str, port: int, log_level: str, access_log: bool, reload: Returns: None """ - # Make hostname human (and Windows) friendly - if host == "0.0.0.0": + # Make hostname Windows friendly + if host == "0.0.0.0" and os.name == "nt": host = "localhost" try: uvicorn.run(