Skip to content
Snippets Groups Projects
Dockerfile 1.63 KiB
FROM node:10.22.1-alpine3.11 as BUILD

ENV VERSION=2.2.0
ENV PORTCHECKER_VERSION=v1.0.6

RUN apk add --no-cache --virtual .gyp libressl-dev git bash python make && \
wget https://github.com/hackmdio/codimd/archive/$VERSION.tar.gz && \
tar xzf $VERSION.tar.gz -C /opt && \
mv /opt/codimd-$VERSION /opt/codimd

RUN cd /opt/codimd && npm install && \
    npm run build && \
    cp ./deployments/docker-entrypoint.sh ./ && \
    cp .sequelizerc.example .sequelizerc && \
    rm -rf .git .gitignore .travis.yml .dockerignore .editorconfig .babelrc .mailmap .sequelizerc.example \
        test docs contribute \
        package-lock.json webpack.prod.js webpack.htmlexport.js webpack.dev.js webpack.common.js \
        config.json.example README.md CONTRIBUTING.md AUTHORS node_modules

FROM node:10.22.1-alpine3.11

RUN addgroup --gid 5010 codimd && \
    adduser -u 5010 -G codimd -D codimd && \
    mkdir /home/$USER_NAME/.npm && \
    echo "prefix=/home/codimd/.npm/" > /home/$USER_NAME/.npmrc && \
    mkdir -p /home/codimd/app && \
    chown -R codimd:codimd /home/codimd && \
    apk add --no-cache git bash python && \
    wget https://github.com/hackmdio/portchecker/releases/download/v1.0.5/portchecker-linux-amd64.tar.gz && \
    tar xvf portchecker-linux-amd64.tar.gz -C /usr/local/bin && \
    mv /usr/local/bin/portchecker-linux-amd64 /usr/local/bin/pcheck && \
    rm portchecker-linux-amd64.tar.gz

USER codimd

WORKDIR /home/codimd/app

COPY --chown=5010:5010 --from=BUILD /opt/codimd .

RUN npm install --production && npm cache clean --force && rm -rf /tmp/{core-js-banners,phantomjs}

COPY entrypoint.sh .

EXPOSE 3000

ENTRYPOINT ["./entrypoint.sh"]