nodejs/Dockerfile.ubuntu

52 lines
1.4 KiB
Docker

ARG REGISTRY_URL=git.winteraccess.id/docker
ARG UBUNTU_VERSION=jammy
FROM ${REGISTRY_URL}/ubuntu:${UBUNTU_VERSION}
LABEL maintainer="<Muhamad Aditya Prima> aprimediet@gmail.com"
ARG NVM_VERSION=0.39.7
ARG NODE_VERSION=20.11.1
WORKDIR /
# CREATE NVM_DIR
ENV NVM_DIR /usr/local/share/nvm
ENV NPM_CACHE_DIR ${NVM_DIR}/.npm-cache
ENV YARN_CACHE_DIR ${NVM_DIR}/.yarn-cache
RUN mkdir -p ${NVM_DIR}
# UPGRADE PACKAGES FIRST
RUN --mount=type=cache,target=/var/cache/apt/archives \
apt -y update && apt -y upgrade
# GET LATEST NVM
ADD https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh /tmp
# INSTALL NVM AND DESIGNATED NODE VERSION
RUN bash /tmp/install.sh && \
. $NVM_DIR/nvm.sh && \
nvm install v${NODE_VERSION} && \
nvm alias default v${NODE_VERSION} && \
nvm use default
ENV NODE_PATH $NVM_DIR/versions/node/v${NODE_VERSION}/lib/node_modules
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
# 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 APT CACHE
RUN apt -y clean && rm -rf /tmp/* && \
npm cache clean --force && npm -g cache clean --force