KIWI 10.0.16 |
RUN /bin/sh -c arch=$([ "$(arch)" = 'aarch64' ] && echo -n 'arm64' || echo -n 'amd64') && echo 'install_weak_deps=False' >> /etc/dnf/dnf.conf && echo 'tsflags=nodocs' >> /etc/dnf/dnf.conf && echo 'assumeyes=True' >> /etc/dnf/dnf.conf && curl -fsSL -o /etc/yum.repos.d/yarn.repo https://dl.yarnpkg.com/rpm/yarn.repo && dnf module enable nodejs:20 postgresql:15 && dnf install dnf-plugins-core epel-release && dnf config-manager --set-disabled epel-cisco-openh264 && dnf config-manager --set-enabled crb && dnf --refresh upgrade && dnf install caddy mariadb npm postgresql python3-cffi python3-ldap python3-lxml python3-mysqlclient python3-pip python3-psycopg2 python3-pyyaml python3-saml python3-xmlsec supervisor uwsgi uwsgi-plugin-python3 yarn https://github.com/kha7iq/subvars/releases/download/v0.1.5/subvars_${arch}.rpm && dnf clean all # buildkit |
RUN /bin/sh -c mkdir -p /opt/powerdns-admin && curl -fsSL https://github.com/PowerDNS-Admin/PowerDNS-Admin/archive/refs/tags/v0.4.2.tar.gz | tar -xzf - -C /opt/powerdns-admin --strip 1 && sed -i -e '/cffi/d' -e '/lxml/d' -e '/mysqlclient/d' -e '/psycopg2/d' -e '/python-ldap/d' -e '/python3-saml/d' -e '/PyYAML/d' /opt/powerdns-admin/requirements.txt && chown -R root: /opt/powerdns-admin # buildkit |
WORKDIR /opt/powerdns-admin |
RUN /bin/sh -c pip3 install -r requirements.txt --no-cache-dir # buildkit |
ENV FLASK_APP=/opt/powerdns-admin/powerdnsadmin/__init__.py |
ENV SSL_MAIN_DOMAIN= |
ENV SSL_EXTRA_DOMAINS= |
COPY config.py.tpl Caddyfile.tpl docker-entrypoint.sh / # buildkit |
COPY run.py . # buildkit |
COPY --chown=uwsgi:uwsgi pdns-admin.ini /etc/uwsgi.ini # buildkit |
COPY supervisor.ini /etc/supervisord.d/supervisor.ini # buildkit |
RUN /bin/sh -c subvars --prefix 'PDNS_ADMIN_' < /config.py.tpl > /opt/powerdns-admin/config.py && sed -i '/SQLALCHEMY_DATABASE_URI/d' /opt/powerdns-admin/config.py # buildkit |
RUN /bin/sh -c yarn install --pure-lockfile --production && yarn cache clean && flask assets build && chown -R uwsgi: /opt/powerdns-admin/powerdnsadmin/static/.webassets-cache # buildkit |
EXPOSE map[8080/tcp:{}] |
HEALTHCHECK &{["CMD" "curl" "-fsSLo" "/dev/null" "http://127.0.0.1:9494"] "10s" "10s" "6s" "0s" '\x03'} |
ENTRYPOINT ["/docker-entrypoint.sh"] |
CMD ["/usr/bin/supervisord" "-c" "/etc/supervisord.conf"] |