Dockerfile 1.1 KB
Newer Older
1 2 3
# =========================
# --- BUILD NPM MODULES ---
# =========================
4
FROM node:18-alpine AS build
5 6

RUN apk add yarn g++ make cmake python3 --no-cache
7 8 9 10

WORKDIR /wiki

COPY ./package.json ./package.json
11
COPY ./patches ./patches
12 13

RUN yarn --production --frozen-lockfile --non-interactive --network-timeout 100000
14
RUN yarn patch-package
15 16 17 18

# ===============
# --- Release ---
# ===============
19
FROM node:18-alpine
20 21 22 23 24
LABEL maintainer="requarks.io"

RUN apk add bash curl git openssh gnupg sqlite --no-cache && \
    mkdir -p /wiki && \
    mkdir -p /logs && \
NGPixel's avatar
NGPixel committed
25
    mkdir -p /wiki/data/content && \
26 27 28 29 30
    chown -R node:node /wiki /logs

WORKDIR /wiki

COPY --chown=node:node ./build/assets ./assets
31
COPY --chown=node:node --from=build /wiki/node_modules ./node_modules
32 33 34
COPY --chown=node:node ./server ./server
COPY --chown=node:node ./build/server/views ./server/views
COPY --chown=node:node ./dev/build/config.yml ./config.yml
35
COPY --chown=node:node ./build/package.json ./package.json
36 37 38 39
COPY --chown=node:node ./LICENSE ./LICENSE

USER node

NGPixel's avatar
NGPixel committed
40 41
VOLUME ["/wiki/data/content"]

42
EXPOSE 3000
NGPixel's avatar
NGPixel committed
43
EXPOSE 3443
44 45

CMD ["node", "server"]