FROM alpine:3.8 AS base

ENV NODE_ENV=production

RUN apk add --no-cache nodejs nodejs-npm zlib
WORKDIR /misskey
COPY . ./

FROM base AS builder

RUN apk add --no-cache \
    gcc \
    g++ \
    libc-dev \
    python \
    autoconf \
    automake \
    file \
    make \
    nasm \
    pkgconfig \
    libtool \
    zlib-dev
RUN npm i -g npm@latest \
 && npm i \
 && npm i -g node-gyp \
 && node-gyp configure \
 && node-gyp build \
 && npm run build

FROM base AS runner

COPY --from=builder /misskey/built ./built
COPY --from=builder /misskey/node_modules ./node_modules

RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--"]

CMD ["npm", "start"]