38 lines
1.3 KiB
Docker
38 lines
1.3 KiB
Docker
FROM python:3.12-slim
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PIP_NO_CACHE_DIR=1
|
|
|
|
WORKDIR /app
|
|
|
|
RUN adduser --system --no-create-home --uid 10001 --group owuitools
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Offline reference data, baked at build time so these lookups have no network
|
|
# dependency and no rate limit at all.
|
|
#
|
|
# manuf - Wireshark's OUI database. Preferred over IEEE's oui.csv because it
|
|
# already merges the MA-L/MA-M/MA-S registries with explicit prefix
|
|
# lengths (00:00:0C/24). Loading only the 24-bit registry silently
|
|
# mis-attributes every address in a 28- or 36-bit block to whoever
|
|
# owns the enclosing /24.
|
|
# ports - IANA service-name/port registry.
|
|
#
|
|
# Fetched here rather than at runtime because the running container has no
|
|
# route to either host. A failed download is not fatal: network_reference
|
|
# reports the dataset as unavailable and tells the model not to guess, which
|
|
# is better than refusing to start over a reference file.
|
|
COPY fetch_data.py .
|
|
RUN python fetch_data.py && rm fetch_data.py
|
|
|
|
COPY owuitools ./owuitools
|
|
|
|
USER owuitools
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["uvicorn", "owuitools.main:app", "--host", "0.0.0.0", "--port", "8000", "--no-server-header"]
|