53 lines
1.2 KiB
Docker
53 lines
1.2 KiB
Docker
# 14.21.3 = 3.14
|
|
# 16.20.2 = 3.16
|
|
# 18.19.1 = 3.18
|
|
# 20.11.1 = 3.19
|
|
# 20.15.1 = 3.20
|
|
# 22.11.0 = 3.21
|
|
ARG REGISTRY_URL=docker.io/aprimediet
|
|
ARG ALPINE_VERSION=3.21
|
|
|
|
FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION}
|
|
LABEL maintainer="<Muhamad Aditya Prima> aprimediet@gmail.com"
|
|
|
|
USER root
|
|
WORKDIR /tmp
|
|
|
|
# Set Cache Directory
|
|
ENV NODE_DIR=/usr/local/share/nodejs
|
|
ENV NPM_CACHE_DIR=${NODE_DIR}/.npm-cache
|
|
ENV YARN_CACHE_DIR=${NODE_DIR}/.yarn-cache
|
|
|
|
RUN addgroup -g 10001 nodejs && \
|
|
adduser -D -u 10001 -G nodejs -s /bin/sh -h /app nodejs
|
|
|
|
# INSTALL WGET AND REQUIRED BUILD TOOLS
|
|
RUN --mount=type=cache,target=/var/cache/apk \
|
|
apk update && apk upgrade && apk add \
|
|
nodejs nodejs-dev npm
|
|
|
|
# SET NPM GLOBAL CACHE
|
|
RUN npm -g config set cache ${NPM_CACHE_DIR} && \
|
|
npm config set cache ${NPM_CACHE_DIR}
|
|
|
|
# INSTALL YARN
|
|
RUN --mount=type=cache,target=${NPM_CACHE_DIR} \
|
|
npm i -g yarn
|
|
|
|
# CREATE YARN CACHE DIR
|
|
RUN mkdir -p ${YARN_CACHE_DIR}
|
|
|
|
# SET YARN CACHE DIR
|
|
RUN yarn config set cache-folder ${YARN_CACHE_DIR}
|
|
|
|
# CLEAR CACHE
|
|
RUN apk del curl && \
|
|
rm -rf /var/cache/apk/* && \
|
|
npm cache clean --force && \
|
|
npm -g cache clean --force
|
|
|
|
USER nodejs
|
|
|
|
WORKDIR /app
|
|
|
|
CMD ["node"] |