53 lines
1.4 KiB
Docker
53 lines
1.4 KiB
Docker
ARG REGISTRY_URL=git.winteraccess.id/docker
|
|
ARG UBUNTU_VERSION=noble
|
|
|
|
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 remove curl && apt -y autoremove && \
|
|
apt -y clean && rm -rf /tmp/* && \
|
|
npm cache clean --force && npm -g cache clean --force
|