FROM docker.io/alpine:3.19 as builder RUN apk add --no-cache \ git \ npm \ bash \ python3 \ make \ sed \ g++ \ musl-dev #ENV NODE_ENV=production # 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 ENV NODE_OPTIONS=--openssl-legacy-provider RUN npm install -g \ webpack \ webpack-cli \ node-gyp ENV WIKIJS_VERSION=v2.5.300 RUN git clone https://github.com/Requarks/wiki.git -b $WIKIJS_VERSION /build WORKDIR /build RUN npm install --legacy-peer-deps # don't know why this is needed here too, but what the hell RUN npm install --legacy-peer-deps --save-dev webpack webpack-cli RUN npx webpack --profile --config dev/webpack/webpack.prod.js RUN sed -i '0,/.*"dev".*/s//"dev": false,/' package.json FROM docker.io/thallian/confd-env:3.19-3.1.6.2 ENV NODE_ENV=production 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 \ git \ openssh-client ADD /rootfs / VOLUME [ "/home/wikijs/data" ] EXPOSE 3000