diff --git a/capsule/Dockerfile b/capsule/Dockerfile index 8c77e4b..bdcad35 100644 --- a/capsule/Dockerfile +++ b/capsule/Dockerfile @@ -1,19 +1,34 @@ -FROM alpine:3.23 - -RUN mkdir -p /var/app/content -WORKDIR /var/app -COPY .certificates/ /var/app/.certificates/ - +FROM alpine:3.23 AS agate RUN apk --update --no-cache add rust cargo \ && wget -O - https://github.com/mbrubeck/agate/archive/refs/tags/v3.3.20.tar.gz | tar -xz \ - && cargo build --release --target-dir agate-target --manifest-path agate-3.3.20/Cargo.toml \ - && mv agate-target/release/agate /usr/local/bin/agate \ + && cargo install --path agate-3.3.20/ \ && rm -rf agate-3.3.20 agate-target -COPY content/ content +FROM alpine:3.23 AS comitium +RUN apk --no-cache add make go scdoc +RUN wget -O - https://git.sr.ht/~nytpu/comitium/archive/v1.8.2.tar.gz | tar -xz \ + && make --directory=comitium-v1.8.2 \ + && mv comitium-v1.8.2/build/comitium /usr/local/bin/comitium \ + && rm -rf comitium-v1.8.2 + +FROM alpine:3.23 AS final +RUN mkdir -p /var/app/content +WORKDIR /var/app +COPY .certificates/ ./ +RUN crontab -l > crontab.tmp \ + && echo "0 */6 * * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \ + && crontab crontab.tmp \ + && rm crontab.tmp + +RUN apk --no-cache add gcc # Dependency for agate +COPY --from=agate /root/.cargo/bin/agate /usr/local/bin/agate +COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium + +COPY content/ comitium-data/ feeds.txt ./ +RUN while read feed; do \ + comitium add --data comitium-data/ "$feed"; \ + done