FROM alpine:3.10 as builder

RUN apk add --no-cache \
    git \
    npm \
    make \
    bash

# to get around errors from differing stack sizes in musl
# https://wiki.musl-libc.org/functional-differences-from-glibc.html#Thread_stack_size
RUN npm config set unsafe-perm true
RUN npm install -g webpack webpack-cli

ENV WIKIJS_VERSION=0cc3fd03a5d13aa5a9649080cbce39e507dc23ca

RUN git clone https://code.vanwa.ch/sebastian/wikijs.git -b nextcloud-auth /build

WORKDIR /build
RUN git checkout $WIKIJS_VERSION
RUN npm install
RUN make build

FROM thallian/confd-env:latest

RUN addgroup -g 2222 wikijs
RUN adduser -h /home/wikijs -S -D -u 2222 -G wikijs wikijs

COPY --from=builder --chown=wikijs:wikijs /build/assets /home/wikijs/assets
COPY --from=builder --chown=wikijs:wikijs /build/node_modules /home/wikijs/node_modules
COPY --from=builder --chown=wikijs:wikijs /build/server /home/wikijs/server
COPY --from=builder --chown=wikijs:wikijs /build/LICENSE /home/wikijs/LICENSE
COPY --from=builder --chown=wikijs:wikijs /build/config.sample.yml /home/wikijs/config.sample.yml
COPY --from=builder --chown=wikijs:wikijs /build/package.json /home/wikijs/package.json

RUN apk add --no-cache \
    nodejs

ADD /rootfs /

VOLUME [ "/home/wikijs/data" ]
EXPOSE 3000