An unpinned pip install took the latest automx2, whose schema grew a column (server.prio) the module's own seeding SQL predates — a 500 on every autoconfig request against a table the seed had just written. 2021.6 is what the proven image runs; the seed and the software agree again. Regenerating the seed for a newer automx2 is its own change, made deliberately, not by whatever pip resolved this week.
45 lines
1.8 KiB
Docker
45 lines
1.8 KiB
Docker
# automx2 — the autoconfig/autodiscover responder, carried by the mailu module as its own
|
|
# artifact: it is a config-baked sidecar of this mail server, not a standalone application
|
|
# (novox/hq ADR 0015 draws that line at applications).
|
|
#
|
|
# The base is named rather than pinned (novox/hq issue 044): declared in module.json's
|
|
# `build.on`. The build context is the module's own directory; every ADD says so.
|
|
ARG PYTHON_BASE
|
|
|
|
FROM ${PYTHON_BASE}
|
|
RUN apk add --no-cache bash sqlite
|
|
WORKDIR /automx2
|
|
|
|
ADD automx/files/setupvenv.sh /automx2/setupvenv.sh
|
|
ADD automx/files/start /automx2/start
|
|
ADD automx/files/setup /automx2/setup
|
|
ADD automx/files/setup-db /automx2/setup-db
|
|
ADD automx/files/add-domains /automx2/add-domains
|
|
RUN chmod u+x setupvenv.sh start add-domains setup setup-db
|
|
|
|
RUN ./setupvenv.sh \
|
|
&& . .venv/bin/activate \
|
|
&& pip install automx2==2021.6
|
|
|
|
# The launcher `start` expects. In the predecessor's image this wrapper appeared during a build
|
|
# step that never made it into the files this module carries — the image worked and the recipe
|
|
# could not reproduce it. Written here explicitly, verbatim from the proven image, so the build
|
|
# is the whole truth about the image again.
|
|
RUN mkdir -p .venv/scripts && printf '%s\n' \
|
|
'#!/usr/bin/env bash' \
|
|
'set -euo pipefail' \
|
|
'. .venv/bin/activate' \
|
|
"export FLASK_ENV='production'" \
|
|
"export FLASK_APP='automx2.server:app'" \
|
|
'flask "$@"' > .venv/scripts/flask.sh && chmod +x .venv/scripts/flask.sh
|
|
|
|
ENV AUTOMX2_CONF=/etc/automx2.conf
|
|
ADD automx/files/automx2.conf /etc/automx2.conf
|
|
|
|
# VOLUME deliberately absent: the anonymous /data volume is exactly what lost db.sqlite on
|
|
# every recreate (measured on novox 2026-08-10). The manifest binds a real directory instead.
|
|
ENTRYPOINT ["/bin/sh"]
|
|
CMD ["./start"]
|
|
|
|
EXPOSE 4243
|