Files
directdnsonly/Dockerfile.scratch

55 lines
1.6 KiB
Docker
Raw Normal View History

FROM python:3.8 AS builder
2021-08-28 11:28:23 +12:00
# Allow Passing Version from CI
ARG VERSION
ENV LC_ALL=en_NZ.utf8
ENV LANG=en_NZ.utf8
2021-09-07 22:39:25 +12:00
ENV APP_NAME="directdnsonly"
2021-08-28 11:28:23 +12:00
RUN mkdir -p /tmp/build && apt-get update && \
apt-get install -y libssl-dev python3-cryptography
2021-08-28 11:28:23 +12:00
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 && \
2021-09-07 22:39:25 +12:00
pyinstaller \
--hidden-import=json \
--hidden-import=pyopenssl \
2021-08-28 11:28:23 +12:00
--hidden-import=jaraco \
2021-09-07 22:39:25 +12:00
--hidden-import=cheroot \
--hidden-import=cheroot.ssl.pyopenssl \
--hidden-import=cheroot.ssl.builtin \
--hidden-import=lib \
2021-08-28 11:28:23 +12:00
--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}
2021-08-28 11:28:23 +12:00
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
2021-09-07 22:39:25 +12:00
CMD ["/app/directdnsonly"]