Upgrade nodejs to 16.17.0 and add pnpm 7.9.5 for default

This commit is contained in:
Sambo Chea 2022-08-25 11:50:36 +07:00
parent c57953c52d
commit a3023036f8
Signed by: sombochea
GPG Key ID: 3C7CF22A05D95490
7 changed files with 674 additions and 88 deletions

1
.vscode/configurationCache.log vendored Normal file
View File

@ -0,0 +1 @@
{"buildTargets":["build"],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}}

14
.vscode/dryrun.log vendored Normal file
View File

@ -0,0 +1,14 @@
make --dry-run --always-make --keep-going --print-directory
make: Entering directory '/mnt/data/projects/calpine-node'
echo 'Starting docker build'
docker build . -t cubetiq/calpine-node
echo 'Starting docker push'
docker tag cubetiq/calpine-node cubetiq/calpine-node:16
docker push cubetiq/calpine-node
docker push cubetiq/calpine-node:16
echo 'Starting docker build with git'
docker build -f Dockerfile.git . -t cubetiq/calpine-node-git
echo 'Starting docker push with git'
docker push cubetiq/calpine-node-git
make: Leaving directory '/mnt/data/projects/calpine-node'

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"makefile.extensionOutputFolder": "./.vscode"
}

457
.vscode/targets.log vendored Normal file
View File

@ -0,0 +1,457 @@
make all --print-data-base --no-builtin-variables --no-builtin-rules --question
make: *** No rule to make target 'all'. Stop.
# GNU Make 4.2.1
# Built for x86_64-pc-linux-gnu
# Copyright (C) 1988-2016 Free Software Foundation, Inc.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
# This is free software: you are free to change and redistribute it.
# There is NO WARRANTY, to the extent permitted by law.
# Make data base, printed on Thu Aug 25 11:16:00 2022
# Variables
# 'override' directive
GNUMAKEFLAGS :=
# automatic
<D = $(patsubst %/,%,$(dir $<))
# automatic
?F = $(notdir $?)
# environment
DESKTOP_SESSION = ubuntu
# default
.SHELLFLAGS := -c
# environment
PROVIDE_FULLSTACK_ACTION = true
# environment
XDG_SESSION_CLASS = user
# environment
SNAP_COMMON = /var/snap/code/common
# environment
XDG_SESSION_TYPE = x11
# environment
TEAMSFX_DEPLOY_MANIFEST = true
# environment
NVM_INC = /home/sombochea/.nvm/versions/node/v16.15.1/include/node
# automatic
?D = $(patsubst %/,%,$(dir $?))
# environment
GRADLE_HOME = /home/sombochea/.sdkman/candidates/gradle/current
# environment
IM_CONFIG_PHASE = 1
# automatic
@D = $(patsubst %/,%,$(dir $@))
# environment
XAUTHORITY = /run/user/1000/gdm/Xauthority
# environment
GDMSESSION = ubuntu
# environment
XMODIFIERS = @im=ibus
# makefile
CURDIR := /mnt/data/projects/calpine-node
# makefile
SHELL = /bin/sh
# environment
SNAP_DATA = /var/snap/code/105
# environment
VTE_VERSION = 6003
# environment
VSCODE_NLS_CONFIG = {"locale":"en-us","availableLanguages":{},"_languagePackSupport":true}
# environment
JOURNAL_STREAM = 8:62173
# environment
TEAMSFX_YO_ENV_CHECKER_ENABLE = true
# environment
XDG_CONFIG_DIRS = /etc/xdg/xdg-ubuntu:/etc/xdg
# environment
SNAP_INSTANCE_NAME = code
# environment
SNAP_ARCH = amd64
# environment
MAVEN_HOME = /home/sombochea/.sdkman/candidates/maven/current
# makefile (from 'Makefile', line 1)
MAKEFILE_LIST := Makefile
# environment
JAVA_HOME = /home/sombochea/.sdkman/candidates/java/current
# automatic
@F = $(notdir $@)
# environment
GIO_LAUNCHED_DESKTOP_FILE = /var/lib/snapd/desktop/applications/code_code.desktop
# environment
USERNAME = sombochea
# environment
MAKELEVEL := 0
# environment
MANDATORY_PATH = /usr/share/gconf/ubuntu.mandatory.path
# environment
XDG_DATA_DIRS = /usr/share/ubuntu:/home/sombochea/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
# environment
DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus
# environment
INFOPATH = /home/linuxbrew/.linuxbrew/share/info:
# environment
TEAMSFX_AAD_MANIFEST = true
# environment
MANAGERPID = 2014
# environment
LC_NAME = km_KH
# environment
VSCODE_CWD = /mnt/data/projects/calpine-node
# environment
GSETTINGS_SCHEMA_DIR = /snap/code/105/usr/share/glib-2.0/schemas
# default
MAKE_HOST := x86_64-pc-linux-gnu
# environment
PATH = /home/sombochea/.bun/bin:/home/sombochea/.yarn/bin:/home/sombochea/.config/yarn/global/node_modules/.bin:/home/sombochea/.local/share/pnpm:/home/sombochea/.nvm/versions/node/v16.15.1/bin:/home/sombochea/.sdkman/candidates/maven/current/bin:/home/sombochea/.sdkman/candidates/java/current/bin:/home/sombochea/.sdkman/candidates/gradle/current/bin:/home/sombochea/.deno/bin:/home/sombochea/.cargo/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/sombochea/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/home/sombochea/Downloads/flutter/bin/:/home/sombochea/go/bin/:/home/sombochea/.dotnet/tools:/home/sombochea/Downloads/arachni-1.5.1-0.5.12/bin
# environment
FLUTTER_PATH = /home/sombochea/Downloads/flutter/bin/
# environment
GPG_AGENT_INFO = /run/user/1000/gnupg/S.gpg-agent:0:1
# environment
LSCOLORS = Gxfxcxdxbxegedabagacad
# environment
GOLANG_EXECUTABLE = go
# environment
SESSION_MANAGER = local/presenter:@/tmp/.ICE-unix/2519,unix/presenter:/tmp/.ICE-unix/2519
# environment
XDG_RUNTIME_DIR = /run/user/1000
# environment
GDK_PIXBUF_MODULE_FILE = /home/sombochea/snap/code/common/.cache/gdk-pixbuf-loaders.cache
# makefile (from 'Makefile', line 1)
DOCKER_IMAGE = cubetiq/calpine-node
# environment
SNAP = /snap/code/105
# environment
SDKMAN_DIR = /home/sombochea/.sdkman
# environment
PNPM_HOME = /home/sombochea/.local/share/pnpm
# environment
SDKMAN_CANDIDATES_API = https://api.sdkman.io/2
# environment
UBUNTU_MENUPROXY = 1
# environment
NVM_BIN = /home/sombochea/.nvm/versions/node/v16.15.1/bin
# environment
SNAP_VERSION = e4503b30
# environment
GO_PATH = /home/sombochea/go/bin/
# environment
SDKMAN_PLATFORM = linuxx64
# environment
DISABLE_WAYLAND = 1
# environment
ELECTRON_RUN_AS_NODE = 1
# environment
INVOCATION_ID = cd2e8cd03491404481c42fbc052ab810
# environment
KUBECONFIG = :/home/sombochea/.kube/config
# environment
GDK_PIXBUF_MODULEDIR = /snap/code/105/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders
# default
.FEATURES := target-specific order-only second-expansion else-if shortest-stem undefine oneshell archives jobserver output-sync check-symlink load
# environment
ELECTRON_NO_ATTACH_CONSOLE = 1
# environment
UUID = 6dd7323e-22a1-4140-9a2c-d704660231b5
# environment
LS_COLORS = rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
# environment
XDG_SESSION_DESKTOP = ubuntu
# environment
SSH_AUTH_SOCK = /run/user/1000/keyring/ssh
# environment
GIO_LAUNCHED_DESKTOP_FILE_PID = 7868
# automatic
%F = $(notdir $%)
# environment
DISPLAY = :0
# environment
XDG_MENU_PREFIX = gnome-
# environment
SNAP_INSTANCE_KEY =
# environment
PWD = /mnt/data/projects/calpine-node
# environment
QT_QPA_PLATFORMTHEME = qt5ct
# environment
DOTNET_ROOT = /snap/dotnet-sdk/current
# default
.LOADED :=
# environment
SSH_AGENT_PID = 2473
# environment
ORIGINAL_XDG_CURRENT_DESKTOP = ubuntu:GNOME
# environment
DRONE_TOKEN = YSPhpNVp1BgxOrR2rD6jsQTkZHgGtS35
# environment
GTK_MODULES = gail:atk-bridge:appmenu-gtk-module
# environment
MANPATH = /home/sombochea/.nvm/versions/node/v16.15.1/share/man:/home/linuxbrew/.linuxbrew/share/man:
# environment
DRONE_SERVER = https://dci.osa.cubetiqs.com
# environment
VSCODE_AMD_ENTRYPOINT = vs/workbench/api/node/extensionHostProcess
# environment
HOME = /home/sombochea
# environment
HOMEBREW_CELLAR = /home/linuxbrew/.linuxbrew/Cellar
# environment
VSCODE_CLI = 1
# environment
VSCODE_CODE_CACHE_PATH = /home/sombochea/.config/Code/CachedData/e4503b30fc78200f846c62cf8091b76ff5547662
# environment
LOGNAME = sombochea
# environment
APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL = 1
# environment
SNAP_LIBRARY_PATH = /var/lib/snapd/lib/gl:/var/lib/snapd/lib/gl32:/var/lib/snapd/void
# environment
SNAP_CONTEXT = 3JI_yM677tmHD5XGlxNqSMrUcRaea-6cE-cIUgrtd8hvru5aiN_V
# environment
NVM_CD_FLAGS = -q
# automatic
+F = $(notdir $+)
# environment
TELEMETRY_ID = e27ad7ff-76e8-4542-8ca5-85ca2265c4dd
# environment
ZSH = /home/sombochea/.oh-my-zsh
# environment
SNAP_USER_COMMON = /home/sombochea/snap/code/common
# environment
VSCODE_HANDLES_UNCAUGHT_ERRORS = true
# environment
GNOME_DESKTOP_SESSION_ID = this-is-deprecated
# automatic
^D = $(patsubst %/,%,$(dir $^))
# environment
LC_TIME = km_KH
# environment
SNAP_REAL_HOME = /home/sombochea
# environment
SDKMAN_VERSION = 5.14.1
# environment
COLORTERM = truecolor
# default
MAKE = $(MAKE_COMMAND)
# default
MAKECMDGOALS := all
# environment
QT_IM_MODULE = ibus
# environment
SNAP_USER_DATA = /home/sombochea/snap/code/105
# environment
SHLVL = 1
# environment
GNOME_SHELL_SESSION_MODE = ubuntu
# default
MAKE_VERSION := 4.2.1
# environment
USER = sombochea
# environment
SNAP_REVISION = 105
# environment
LC_MONETARY = km_KH
# makefile
.DEFAULT_GOAL := build
# environment
XDG_CURRENT_DESKTOP = Unity
# environment
THREE_SCALE_USER_TOKEN = 207c527cfc2a6b8dcf4fa43ad7a976da
# environment
LIBVIRT_DEFAULT_URI = qemu:///system
# environment
TEAMSFX_BICEP_ENV_CHECKER_ENABLE = true
# environment
BOT_NOTIFICATION_ENABLED = true
# environment
LESS = -R
# automatic
%D = $(patsubst %/,%,$(dir $%))
# environment
LC_TELEPHONE = km_KH
# default
MAKE_COMMAND := make
# environment
UTM_SOURCE = vscode
# environment
TEAMSFX_API_CONNECT_ENABLE = true
# environment
OLDPWD = /mnt/data/projects
# default
.VARIABLES :=
# automatic
*F = $(notdir $*)
# environment
VSCODE_IPC_HOOK = /run/user/1000/vscode-23a21424-1.70.2-main.sock
# environment
BAMF_DESKTOP_FILE_HINT = /var/lib/snapd/desktop/applications/code_code.desktop
# environment
BUN_INSTALL = /home/sombochea/.bun
# makefile
MAKEFLAGS = pqrR
# environment
MFLAGS = -pqrR
# automatic
*D = $(patsubst %/,%,$(dir $*))
# environment
NVM_DIR = /home/sombochea/.nvm
# environment
HOMEBREW_PREFIX = /home/linuxbrew/.linuxbrew
# automatic
+D = $(patsubst %/,%,$(dir $+))
# environment
RECOMMENDER_API_URL = https://gw.api.openshift.io//api/v2
# environment
GDK_BACKEND = x11
# environment
LC_PAPER = km_KH
# environment
NO_AT_BRIDGE = 1
# environment
LC_IDENTIFICATION = km_KH
# environment
DENO_INSTALL = /home/sombochea/.deno
# environment
HOMEBREW_REPOSITORY = /home/linuxbrew/.linuxbrew/Homebrew
# environment
QT_ACCESSIBILITY = 1
# environment
DEFAULTS_PATH = /usr/share/gconf/ubuntu.default.path
# default
MAKEFILES :=
# environment
SNAP_COOKIE = 3JI_yM677tmHD5XGlxNqSMrUcRaea-6cE-cIUgrtd8hvru5aiN_V
# environment
LC_NUMERIC = km_KH
# automatic
<F = $(notdir $<)
# makefile (from 'Makefile', line 2)
DOCKER_IMAGE_GIT = cubetiq/calpine-node-git
# environment
LC_MEASUREMENT = km_KH
# environment
SNAP_NAME = code
# environment
SDKMAN_CANDIDATES_DIR = /home/sombochea/.sdkman/candidates
# environment
PAGER = less
# makefile (from 'Makefile', line 3)
DOCKER_IMAGE_NAME = ${DOCKER_IMAGE}:16
# environment
LC_ALL = C
# environment
ARACHNI_WEB_PATH = /home/sombochea/Downloads/arachni-1.5.1-0.5.12/bin
# environment
GJS_DEBUG_TOPICS = JS ERROR;JS LOG
# environment
GNOME_TERMINAL_SCREEN = /org/gnome/Terminal/screen/d9d34e9d_1d56_4d12_89e3_6ad2ded203ce
# automatic
^F = $(notdir $^)
# environment
TEAMSFX_GENERATOR_ENV_CHECKER_ENABLE = true
# environment
GNOME_TERMINAL_SERVICE = :1.91
# default
SUFFIXES :=
# environment
SNAP_REEXEC =
# environment
CHROME_DESKTOP = code-url-handler.desktop
# environment
WINDOWPATH = 2
# default
.INCLUDE_DIRS = /usr/include /usr/local/include /usr/include
# environment
TEAMSFX_M365_APP = true
# environment
GJS_DEBUG_OUTPUT = stderr
# default
.RECIPEPREFIX :=
# environment
LC_ADDRESS = km_KH
# environment
LANG = C
# environment
TERM = xterm-256color
# environment
VSCODE_PID = 7913
# variable set hash-table stats:
# Load=182/1024=18%, Rehash=0, Collisions=31/207=15%
# Pattern-specific Variable Values
# No pattern-specific variable values.
# Directories
# . (device 2065, inode 29365737): 13 files, no impossibilities.
# 13 files, no impossibilities in 1 directories.
# Implicit Rules
# No implicit rules.
# Files
# Not a target:
all:
# Command line target.
# Implicit rule search has been done.
# File does not exist.
# File has not been updated.
.PHONY: build
# Implicit rule search has not been done.
# Modification time never checked.
# File has not been updated.
# Not a target:
Makefile:
# Implicit rule search has been done.
# Last modified 2022-05-06 10:45:12.195781556
# File has been updated.
# Successfully updated.
build:
# Phony target (prerequisite of .PHONY).
# Implicit rule search has not been done.
# File does not exist.
# File has not been updated.
# recipe to execute (from 'Makefile', line 6):
@echo 'Starting docker build'
docker build . -t ${DOCKER_IMAGE}
@echo 'Starting docker push'
docker tag ${DOCKER_IMAGE} ${DOCKER_IMAGE_NAME}
docker push ${DOCKER_IMAGE}
docker push ${DOCKER_IMAGE_NAME}
@echo 'Starting docker build with git'
docker build -f Dockerfile.git . -t ${DOCKER_IMAGE_GIT}
@echo 'Starting docker push with git'
docker push ${DOCKER_IMAGE_GIT}
# Not a target:
.DEFAULT:
# Implicit rule search has not been done.
# Modification time never checked.
# File has not been updated.
# files hash-table stats:
# Load=6/1024=1%, Rehash=0, Collisions=0/17=0%
# VPATH Search Paths
# No 'vpath' search paths.
# No general ('VPATH' variable) search path.
# strcache buffers: 1 (0) / strings = 20 / storage = 181 B / avg = 9 B
# current buf: size = 8162 B / used = 181 B / count = 20 / avg = 9 B
# strcache performance: lookups = 27 / hit rate = 25%
# hash-table stats:
# Load=20/8192=0%, Rehash=0, Collisions=1/27=4%
# Finished Make data base on Thu Aug 25 11:16:00 2022

View File

@ -4,103 +4,93 @@ LABEL maintainer="sombochea@cubetiqs.com"
# Build with root access
USER root
ENV NODE_VERSION 16.15.0
ENV NODE_SHA256 4db62cabc0647fc18f537ed10b5573f3c23ffb4d4434e40713e7e472f1ed4e55
ENV NODE_VERSION 16.17.0
ENV NODE_SHA256 6c94de8608fcd5b992f5f804c2d03bc3a7f422426760b1b80ea4ced486a694fe
ENV USER_UID 1001
RUN addgroup -g ${USER_UID} node \
&& adduser -u ${USER_UID} -G node -s /bin/sh -D node \
&& apk add --no-cache \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
&& ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
CHECKSUM=$NODE_SHA256 \
;; \
*) ;; \
esac \
&& adduser -u ${USER_UID} -G node -s /bin/sh -D node \
&& apk add --no-cache \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
&& ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
CHECKSUM=$NODE_SHA256 \
;; \
*) ;; \
esac \
&& if [ -n "${CHECKSUM}" ]; then \
set -eu; \
DL_ROOT="https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
echo "Downloading Node.js from ${DL_ROOT}"; \
curl -fsSLO --compressed $DL_ROOT; \
echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
set -eu; \
DL_ROOT="https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
echo "Downloading Node.js from ${DL_ROOT}"; \
curl -fsSLO --compressed $DL_ROOT; \
echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
else \
echo "Building from source" \
# backup build
&& apk add --no-cache --virtual .build-deps-full \
binutils-gold \
g++ \
gcc \
gnupg \
libgcc \
linux-headers \
make \
python3 \
# gpg keys listed at https://github.com/nodejs/node#release-keys
&& for key in \
4ED778F539E3634C779C87C6D7062848A1AB005C \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
74F12602B6F1C4E913FAA37AD3A89613643B6201 \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
108F52B48DB57BB0CC439B2997B01419BD92F80A \
B9E2F5981AA6E0CD28160D9FF13993A75599653C \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
&& cd "node-v$NODE_VERSION" \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
&& make install \
&& apk del .build-deps-full \
&& cd .. \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
echo "Building from source" \
# backup build
&& apk add --no-cache --virtual .build-deps-full \
binutils-gold \
g++ \
gcc \
gnupg \
libgcc \
linux-headers \
make \
python3 \
# gpg keys listed at https://github.com/nodejs/node#release-keys
&& for key in \
4ED778F539E3634C779C87C6D7062848A1AB005C \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
74F12602B6F1C4E913FAA37AD3A89613643B6201 \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
108F52B48DB57BB0CC439B2997B01419BD92F80A \
B9E2F5981AA6E0CD28160D9FF13993A75599653C \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
&& cd "node-v$NODE_VERSION" \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
&& make install \
&& apk del .build-deps-full \
&& cd .. \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
fi \
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
&& apk del .build-deps \
# smoke tests
&& node --version \
&& npm --version
&& apk del .build-deps
ENV YARN_VERSION 1.22.18
ARG PNPM_VERSION=7.9.5
ENV PNPM_HOME=/root/.local/share/pnpm
ENV PATH=$PATH:$PNPM_HOME
RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
&& for key in \
6A010C5166006599AA17F08146C2130DFD2497F5 \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& mkdir -p /opt \
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& apk del .build-deps-yarn \
# smoke test
&& yarn --version
RUN echo "Installing PNPM version: $PNPM_VERSION" && \
apk add --no-cache curl && \
curl -fsSL "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-linuxstatic-x64" -o /bin/pnpm && chmod +x /bin/pnpm && \
apk del curl
# Checking packages version
RUN echo "NODE: $(node --version)" \
&& echo "NPM: $(npm --version)" \
&& echo "NPX: $(npx --version)" \
&& echo "PNPM: $(pnpm --version)"
COPY entrypoint.sh /usr/local/bin/

111
Dockerfile.16-15-0 Normal file
View File

@ -0,0 +1,111 @@
FROM cubetiq/calpine-os-linux:latest
LABEL maintainer="sombochea@cubetiqs.com"
# Build with root access
USER root
ENV NODE_VERSION 16.15.0
ENV NODE_SHA256 4db62cabc0647fc18f537ed10b5573f3c23ffb4d4434e40713e7e472f1ed4e55
ENV USER_UID 1001
RUN addgroup -g ${USER_UID} node \
&& adduser -u ${USER_UID} -G node -s /bin/sh -D node \
&& apk add --no-cache \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
curl \
&& ARCH= && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
x86_64) \
ARCH='x64' \
CHECKSUM=$NODE_SHA256 \
;; \
*) ;; \
esac \
&& if [ -n "${CHECKSUM}" ]; then \
set -eu; \
DL_ROOT="https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
echo "Downloading Node.js from ${DL_ROOT}"; \
curl -fsSLO --compressed $DL_ROOT; \
echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
else \
echo "Building from source" \
# backup build
&& apk add --no-cache --virtual .build-deps-full \
binutils-gold \
g++ \
gcc \
gnupg \
libgcc \
linux-headers \
make \
python3 \
# gpg keys listed at https://github.com/nodejs/node#release-keys
&& for key in \
4ED778F539E3634C779C87C6D7062848A1AB005C \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
74F12602B6F1C4E913FAA37AD3A89613643B6201 \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
108F52B48DB57BB0CC439B2997B01419BD92F80A \
B9E2F5981AA6E0CD28160D9FF13993A75599653C \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
&& cd "node-v$NODE_VERSION" \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
&& make install \
&& apk del .build-deps-full \
&& cd .. \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
fi \
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
&& apk del .build-deps \
# smoke tests
&& node --version \
&& npm --version
ENV YARN_VERSION 1.22.18
RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
&& for key in \
6A010C5166006599AA17F08146C2130DFD2497F5 \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& mkdir -p /opt \
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& apk del .build-deps-yarn \
# smoke test
&& yarn --version
COPY entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
CMD [ "node" ]

View File

@ -18,3 +18,13 @@ build:
docker push ${DOCKER_IMAGE_GIT}
.PHONY:build
test:
@echo 'Starting docker build'
docker build . -t ${DOCKER_IMAGE}
@echo 'Starting docker run'
docker run --rm -it ${DOCKER_IMAGE} --version
@echo 'Starting docker run with git'
docker run --rm -it ${DOCKER_IMAGE_GIT} --version
.PHONY:test