Docker Alpine 镜像是否包含 npm?
Does Docker Alpine images include npm?
我正在设置 docker 容器以将我的前端资产与 npm 和 Webpack 捆绑在一起。为此,我想使用轻量级 Docker 图像。来自 https://hub.docker.com/_/alpine 的图像是否带有 npm?
在我的 docker-compose.yml 文件中
services:
assets:
image: alpine:3.9.2
working_dir: /home/node/app/assets
volumes:
- ./src/app/assets:/home/alpine/app/assets/
command: "npm run bundle"
预计 npm run bundle
到 运行 成功
我得到了
错误:对于资产无法启动服务资产:OCI 运行time create failed: container_linux.go:344: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown
在 docker 中,Alpine linux 被设计为一个最小的基础镜像,以保持较小的镜像大小并减少它的攻击面。 nodejs
(其中包含 npm
)等其他软件需要手动安装 using corresponding apk packages,例如 apk add nodejs
。可能需要先使用 apk update
.
更新软件包
docker 方式
您可以轻松编写 Dockerfile
并将其添加为 RUN
语句。但是首选的方法是在 docker hub for already existing images that fit your needs. In case of npm you'll find a official nodejs image 中搜索,您只需使用目标 nodejs 版本的标签,例如 10-*
以获得最新的 lts。
在这里您可以选择不同的基本图像。以 lts 为例,您可以使用 10-jessie
或您想要的:10-alpine
。这只有 24mb,而 10-stretch
需要 346mb 的存储空间。
要使用它,请在 docker-compose.yml
文件中将 image: alpine:3.9.2
更改为 image: node: 10-alpine
。
我正在设置 docker 容器以将我的前端资产与 npm 和 Webpack 捆绑在一起。为此,我想使用轻量级 Docker 图像。来自 https://hub.docker.com/_/alpine 的图像是否带有 npm?
在我的 docker-compose.yml 文件中
services:
assets:
image: alpine:3.9.2
working_dir: /home/node/app/assets
volumes:
- ./src/app/assets:/home/alpine/app/assets/
command: "npm run bundle"
预计 npm run bundle
到 运行 成功
我得到了 错误:对于资产无法启动服务资产:OCI 运行time create failed: container_linux.go:344: starting container process caused "exec: \"npm\": executable file not found in $PATH": unknown
在 docker 中,Alpine linux 被设计为一个最小的基础镜像,以保持较小的镜像大小并减少它的攻击面。 nodejs
(其中包含 npm
)等其他软件需要手动安装 using corresponding apk packages,例如 apk add nodejs
。可能需要先使用 apk update
.
docker 方式
您可以轻松编写 Dockerfile
并将其添加为 RUN
语句。但是首选的方法是在 docker hub for already existing images that fit your needs. In case of npm you'll find a official nodejs image 中搜索,您只需使用目标 nodejs 版本的标签,例如 10-*
以获得最新的 lts。
在这里您可以选择不同的基本图像。以 lts 为例,您可以使用 10-jessie
或您想要的:10-alpine
。这只有 24mb,而 10-stretch
需要 346mb 的存储空间。
要使用它,请在 docker-compose.yml
文件中将 image: alpine:3.9.2
更改为 image: node: 10-alpine
。