Sign inSign up

ficusio/nodejs-base

By ficusio

Updated over 10 years ago

Lightweight Node.js base image

Image
7

2.6K

Dockerfile
FROM alpine:3.3

ENV NODEJS_VERSION=5.6.0 \
    NODEJS_SHA256=3af2cc5e5970afc83e59f2065fea2e2df846a544a100cd3c0527f0db05bec27f \
    NPM_VERSION=3.7.1

RUN info(){ printf '\n--\n%s\n--\n\n' "$*"; } \
 && info "==> Installing dependencies..." \
 && apk update \
 && apk add --virtual build-deps \
    curl make gcc g++ python paxctl \
    musl-dev openssl-dev zlib-dev \
    linux-headers binutils-gold \
 && mkdir -p /root/nodejs \
 && cd /root/nodejs \
 && info "==> Downloading..." \
 && curl -sSL -o node.tar.gz http://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}.tar.gz \
 && echo "$NODEJS_SHA256  node.tar.gz" > node.sha256 \
 && sha256sum -c node.sha256 \
 && info "==> Extracting..." \
 && tar -xzf node.tar.gz \
 && cd node-* \
 && info "==> Configuring..." \
 && readonly NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || echo 1) \
 && echo "using upto $NPROC threads" \
 && ./configure \
   --prefix=/usr \
   --shared-openssl \
   --shared-zlib \
 && info "==> Building..." \
 && make -j$NPROC -C out mksnapshot \
 && paxctl -c -m out/Release/mksnapshot \
 && make -j$NPROC \
 && info "==> Installing..." \
 && make install \
 && info "==> Finishing..." \
 && apk del build-deps \
 && apk add \
    openssl libgcc libstdc++ \
 && rm -rf /var/cache/apk/* \
 && info "==> Updating NPM..." \
 && npm i -g npm@$NPM_VERSION \
 && info "==> Cleaning up..." \
 && npm cache clean \
 && rm -rf ~/.node-gyp /tmp/* \
 && rm -rf /root/nodejs \
 && echo 'Done! =)'