From 6698a9bff10384f89288dbd4344bff75187b8935 Mon Sep 17 00:00:00 2001 From: Viorel Date: Mon, 13 Apr 2026 17:12:10 +0300 Subject: [PATCH] Add radicale --- radicale.Dockerfile | 18 ++++++++++++++++++ radicale.yaml | 28 ++++++++++++++++++++++++++++ src/setup-radicale.sh | 21 +++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 radicale.Dockerfile create mode 100644 radicale.yaml create mode 100755 src/setup-radicale.sh diff --git a/radicale.Dockerfile b/radicale.Dockerfile new file mode 100644 index 0000000..99be0e7 --- /dev/null +++ b/radicale.Dockerfile @@ -0,0 +1,18 @@ +# syntax=docker/dockerfile:1 +# gentoo-radicale +FROM registry.ceamac.ro/gentoo-base-busybox AS builder + +WORKDIR /workdir +COPY --exclude=repos --exclude=bin . . +RUN --mount=type=cache,target=/workdir/cache,sharing=locked <<-EOF + /bin/bash src/setup-radicale.sh /mnt/gentoo -j8 +EOF + +FROM scratch +WORKDIR / +EXPOSE 5232 +VOLUME ["/etc/radicale", "/var/lib/radicale"] +COPY --from=builder /mnt/gentoo / +RUN tar c -j -f /var/db/pkg.tar.bz2 -C /var/db/pkg . && rm -fR /var/db/pkg +USER radicale:radicale +CMD ["/usr/bin/radicale"] diff --git a/radicale.yaml b/radicale.yaml new file mode 100644 index 0000000..8ccbc04 --- /dev/null +++ b/radicale.yaml @@ -0,0 +1,28 @@ +services: + radicale: + image: registry.ceamac.ro/gentoo-radicale + restart: always + #userns: nomap + ports: + - "127.0.0.1:5232:5232/tcp" + volumes: + - type: volume + source: radicale-etc + target: /etc/radicale + - type: volume + source: radicale-var-lib + target: /var/lib/radicale + build: + context: . + dockerfile: radicale.Dockerfile + tags: + - "registry.ceamac.ro/gentoo-radicale" + + #command: /bin/bash + #stdin_open: true + #tty: true + command: /usr/bin/radicale -D + +volumes: + radicale-etc: + radicale-var-lib: diff --git a/src/setup-radicale.sh b/src/setup-radicale.sh new file mode 100755 index 0000000..ae0ef31 --- /dev/null +++ b/src/setup-radicale.sh @@ -0,0 +1,21 @@ +#! /bin/bash + +set -euo pipefail + +imagedir="${1}" +imagename="$(basename "${imagedir}")" +shift + +usename="${imagedir}"/etc/portage/package.use +[[ -d ${usename} ]] && usename="${usename}"/global.conf + +cat <<-EOF >> "${usename}" +*/* verify-sig verify-provenance +EOF + +emerge -vk "$@" acct-user/radicale acct-group/radicale +bin/"${imagename}"-emerge -vk "$@" www-apps/radicale dev-python/packaging app-crypt/argon2 dev-python/requests + +chown -R radicale:radicale "${imagedir}"/var/lib/radicale +chmod 0750 "${imagedir}"/var/lib/radicale +chmod -R o= "${imagedir}"/var/lib/radicale