我正在尝试基于 alpine linux 构建自己的 docker 容器,并且需要在该容器中添加多个服务(是的,这不是推荐的最佳实践,但目前我的组织 devops 有点落后,并要求为我的自定义图像使用单个 dockerfile)。
我正在检查这文章中找到了在 alpine linux 上使用 npm 安装最新版本的 nodejs 的方法。但是,这个讨论中似乎没有提供apk add nodejs@6
或提供类似的内容。
此外,Alpine Linux 的存储库中似乎没有最新版本的 NodeJS(V 8.X)这里。
那么我是否必须从源代码安装 nodejs?但与仅从 alpine repo 安装相比,此选项非常慢。
编辑:
在 dockerfile 中添加 nodejs-current 又出现了另一个问题
步骤...:运行 apk update && apk add nodejs-current
---> 正在运行 e430b4d279e5 获取http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz 拿来 http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz 拿来 http://nl.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz v3.4.6-213-gb6db4bd [http://dl-cdn.alpinelinux.org/alpine/v3.4/main] v3.4.6-160-g14ad2a3 [http://dl-cdn.alpinelinux.org/alpine/v3.4/community] v3.6.0-3765-g46dd4472f4 [http://nl.alpinelinux.org/alpine/edge/testing]确定:8679 个不同的包可用错误:无法满足的约束:nodejs-current(缺失):world[nodejs-current] 所需
答案1
答案2
对我来说最简单的方法是使用特定版本的 Alpine。
在我的用例中,我使用了php:7.4-fpm-alpine
图像。并且必须将其更新才能php:7.4-fpm-alpine3.13
使用 Node 14。
php:7.4-fpm-alpine3.13 - Node 14
php:7.4-fpm-alpine3.12 - Node 12
Dockerfile 示例:
FROM php:7.4-fpm-alpine3.13
RUN apk update && apk add nodejs npm