coffey-labs

ihasmail (2026.9.20-g5b353d1)

Published 2026-09-22 15:47:13 +00:00 by jcoffey-dev in coffey-labs/ihasmail

Installation

docker pull git.coffeylabs.org/coffey-labs/ihasmail:2026.9.20-g5b353d1
sha256:9d25c533799b79c164371c2481187699efe35a7d2c243287d46e91d96c82c126

Images

Digest OS / Arch Size
3622b978a1 linux/amd64 67 MiB
55a052555d linux/arm64 68 MiB

Image Layers ( linux/arm64)

ADD alpine-minirootfs-3.24.2-aarch64.tar.gz / # buildkit
CMD ["/bin/sh"]
ENV NODE_VERSION=26.9.0
RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libstdc++ && apk add --no-cache --virtual .build-deps curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' CHECKSUM="75482fd18104cd6e789a5653eb78b5d1a98cb49d8d9bf1d1b56bc4f30928886f" OPENSSL_ARCH=linux-x86_64;; aarch64) OPENSSL_ARCH=linux-aarch64;; *) echo "unsupported architecture"; exit 1 ;; esac && if [ -n "${CHECKSUM}" ]; then set -eu; curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc gnupg libgcc linux-headers make python3 py-setuptools rust cargo && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node"]
ARG IHASMAIL_VERSION=2026.9.20+g5b353d1
ARG BASE_PATH=
ENV NODE_ENV=production HOST=0.0.0.0 PORT=8080 STATIC_DIR=/app/web/dist SESSION_FILE=/data/sessions.json IHASMAIL_VERSION=2026.9.20+g5b353d1 BASE_PATH=
WORKDIR /app
COPY package.json package-lock.json* ./ # buildkit
COPY server/package.json server/ # buildkit
COPY scripts/ ./scripts/ # buildkit
RUN |2 IHASMAIL_VERSION=2026.9.20+g5b353d1 BASE_PATH= /bin/sh -c npm ci --ignore-scripts --omit=dev --workspace server && rm -rf /root/.npm /tmp/* # buildkit
COPY /app/server/dist ./server/dist # buildkit
COPY /app/web/dist ./web/dist # buildkit
RUN |2 IHASMAIL_VERSION=2026.9.20+g5b353d1 BASE_PATH= /bin/sh -c mkdir -p /data && chown node:node /data && rm -rf /usr/local/lib/node_modules /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack /opt/yarn* /usr/local/bin/yarn /usr/local/bin/yarnpkg # buildkit
USER node
EXPOSE [8080/tcp]
HEALTHCHECK {Test:[CMD-SHELL BP="${BASE_PATH%/}"; case "$BP" in ""|/*) ;; *) BP="/$BP";; esac; wget -qO- "http://127.0.0.1:8080$BP/api/health" || exit 1] Interval:30s Timeout:5s StartPeriod:0s StartInterval:0s Retries:0}
CMD ["node" "server/dist/index.js"]
Details
Container
2026-09-22 15:47:13 +00:00
4
OCI / Docker
Versions (3) View all
2026.9.20-g5b353d1 2026-09-22
latest 2026-09-22
2026.9.19-g23557a7 2026-09-22