Files
SocialPub/tools/pasture/images/ktistec/Containerfile
T

24 lines
1.0 KiB
Docker
Raw Normal View History

2026-10-06 14:09:29 +02:00
# Ktistec 3.13.0 from its tag: the project publishes no image. Its own Dockerfile, pinned: a static server built with
# Crystal, its scripts and styles with node
FROM docker.io/crystallang/crystal:1.19.1-alpine AS builder
RUN apk -U --no-progress add make sqlite-static yaml-dev musl-dev gc-dev gc-static pcre2-dev pcre2-static gmp-dev gmp-static
WORKDIR /build
RUN git clone --branch v3.13.0 --depth 1 https://github.com/toddsundsted/ktistec .
RUN shards install --production
RUN crystal build src/ktistec/server.cr --static --no-debug --release
FROM docker.io/library/node:22-alpine AS nodebuilder
WORKDIR /build
COPY --from=builder /build /build
RUN npm ci && npm run build
FROM docker.io/library/alpine:3.22
RUN apk -U --no-progress --no-cache add tzdata
WORKDIR /app
COPY --from=nodebuilder /build/etc /app/etc
COPY --from=nodebuilder /build/public /app/public
COPY --from=nodebuilder /build/server /bin/server
RUN mkdir /db && ln -s /app/public/uploads /uploads
ENV KTISTEC_DB=/db/ktistec.db
EXPOSE 3000
CMD ["/bin/server"]