You've already forked directdnsonly
- Migrated from setuptools to Poetry; added pyproject.toml, poetry.lock, poetry.toml and .python-version (Python 3.11.12) - Built out full directdnsonly Python package with BIND and CoreDNS MySQL backends, CherryPy REST API, persist-queue worker, and vyper-based config - Auth credentials now read from config/env (app.auth_username/password) rather than hardcoded; override via DADNS_APP_AUTH_PASSWORD env var - Added Dockerfile.deepseek: Python 3.11 slim + BIND9 + Poetry install - Rewrote docker-compose.yml for local dev stack (MySQL + dadns services) - Added SQL schema, docker/ BIND configs, justfile, tests, and README - Expanded .gitignore for Poetry/Python project artifacts
55 lines
1.6 KiB
Docker
55 lines
1.6 KiB
Docker
FROM python:3.8 AS builder
|
|
# Allow Passing Version from CI
|
|
ARG VERSION
|
|
ENV LC_ALL=en_NZ.utf8
|
|
ENV LANG=en_NZ.utf8
|
|
ENV APP_NAME="directdnsonly"
|
|
|
|
RUN mkdir -p /tmp/build && apt-get update && \
|
|
apt-get install -y libssl-dev python3-cryptography
|
|
|
|
COPY src/ /tmp/build/
|
|
COPY requirements.txt /tmp/build
|
|
|
|
WORKDIR /tmp/build
|
|
|
|
WORKDIR /tmp/src
|
|
RUN wget https://github.com/NixOS/patchelf/releases/download/0.12/patchelf-0.12.tar.bz2 && \
|
|
tar xvf patchelf-0.12.tar.bz2 && \
|
|
cd /tmp/src/patchelf-0.12* && \
|
|
./configure --prefix="/usr" && \
|
|
make install
|
|
|
|
WORKDIR /tmp/build
|
|
RUN pip3 install -r requirements.txt && \
|
|
pyinstaller \
|
|
--hidden-import=json \
|
|
--hidden-import=pyopenssl \
|
|
--hidden-import=jaraco \
|
|
--hidden-import=cheroot \
|
|
--hidden-import=cheroot.ssl.pyopenssl \
|
|
--hidden-import=cheroot.ssl.builtin \
|
|
--hidden-import=lib \
|
|
--noconfirm --onefile ${APP_NAME}.py && \
|
|
cd /tmp/build/dist && \
|
|
staticx ${APP_NAME} ./${APP_NAME}_static
|
|
|
|
RUN mkdir -p /tmp/approot && \
|
|
mkdir -p /tmp/approot/app && \
|
|
mkdir -p /tmp/approot/app/config && \
|
|
mkdir -p /tmp/approot/etc && \
|
|
mkdir -p /tmp/approot/tmp && \
|
|
mkdir -p /tmp/approot/data && \
|
|
cp /tmp/build/config/app.yml /tmp/approot/app/config/app.yml && \
|
|
cp /tmp/build/dist/${APP_NAME}_static /tmp/approot/app/${APP_NAME}
|
|
|
|
FROM scratch
|
|
COPY --from=builder /tmp/approot /
|
|
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
|
|
ENV TZ=Pacific/Auckland
|
|
WORKDIR /app
|
|
|
|
VOLUME /app/config /data
|
|
|
|
CMD ["/app/directdnsonly"]
|