簡體   English   中英

從命令行 (apk --update add),如何安裝 node.js 的“當前最新功能”版本,而不是“推薦給大多數用戶的 LTS”?

[英]From the command line (apk --update add), how to install node.js 'Current latest features' version, instead of 'LTS recommended for most users'?

我有一個帶有“python:alpine”基本映像的 Docker 文件

我需要在容器中安裝 python 和 node.js,所以我從一個 python 圖像開始。

如何在不指定版本的情況下在容器中安裝最新版本的 node.js(node.js 的“當前最新功能”)?

在發這篇文章的時候,

RUN apk -v --no-cache --update add nodejs

將安裝“為大多數用戶推薦的 LTS”,而不是“當前的最新功能”

參考: https : //nodejs.org/en

在這篇文章的時間:

  • “為大多數用戶推薦 LTS”: 14.7.6
  • “當前最新功能”: 16.9.1

在此示例中,我希望安裝16.9.1而不是14.7.6 ,但不在我的 Dockerfile 中指定特定版本


這樣做的目的是降低對 Dockerfile 的維護,讓它始終提取最新的“當前 - 最新功能版本”,而無需檢查 node.js 站點以獲取版本號,並將其硬編碼到 Dockerfile 中。

看到這個

“edge”是 Alpine Linux 當前開發樹的名稱。 它包含一個名為“edge”的 APK 存儲庫,並包含所有可用 Alpine Linux 軟件包的最新版本。 這些軟件包會定期更新。

而且, nodejs-current是最新功能版本的包名稱,因此您可以使用 next:

apk add --no-cache nodejs-current --repository="http://dl-cdn.alpinelinux.org/alpine/edge/community"

全程運行:

/ # apk update
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
v3.14.2-38-g27e4ada230 [https://dl-cdn.alpinelinux.org/alpine/v3.14/main]
v3.14.2-36-g70ff2140e8 [https://dl-cdn.alpinelinux.org/alpine/v3.14/community]
OK: 14938 distinct packages available
/ # apk search --no-cache nodejs-current --repository="http://dl-cdn.alpinelinux.org/alpine/edge/community"
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
nodejs-current-doc-16.9.1-r0
nodejs-current-16.9.1-r0
nodejs-current-dev-16.9.1-r0
/ # apk add --no-cache nodejs-current --repository="http://dl-cdn.alpinelinux.org/alpine/edge/community"
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/8) Installing ca-certificates (20191127-r5)
(2/8) Installing brotli-libs (1.0.9-r5)
(3/8) Installing c-ares (1.17.2-r0)
(4/8) Installing libgcc (10.3.1_git20210424-r2)
(5/8) Installing nghttp2-libs (1.43.0-r0)
(6/8) Installing libstdc++ (10.3.1_git20210424-r2)
(7/8) Installing libuv (1.41.0-r0)
(8/8) Installing nodejs-current (16.9.1-r0)
Executing busybox-1.33.1-r3.trigger
Executing ca-certificates-20191127-r5.trigger
OK: 74 MiB in 22 packages
/ # node -v
v16.9.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM