【发布时间】:2020-06-28 23:02:05
【问题描述】:
我似乎缺少一些关于 Docker 的基础知识。我有一个docker-compose.yml,我想在那里添加另一个服务,它基本上从 NPM 安装一个模块并运行一些以服务 UI 应用程序的命令结尾的命令。
当我选择node 作为基础镜像时,它会启动它的 REPL,我无法从中安装模块。查看node 镜像的Dockerfile,有一大堆东西。我真的应该复制所有这些并开始 bash 吗?
【问题讨论】:
我似乎缺少一些关于 Docker 的基础知识。我有一个docker-compose.yml,我想在那里添加另一个服务,它基本上从 NPM 安装一个模块并运行一些以服务 UI 应用程序的命令结尾的命令。
当我选择node 作为基础镜像时,它会启动它的 REPL,我无法从中安装模块。查看node 镜像的Dockerfile,有一大堆东西。我真的应该复制所有这些并开始 bash 吗?
【问题讨论】:
您应该创建自己的 docker 映像,其中已经安装了所需的软件包。您使用 FROM 创建一个 Dockerfile:节点复制您的 package.json 和您的脚本源并运行 npm install 我是 Dockerfile。您应该覆盖该命令以运行您的脚本。构建此图像。现在使用这张图片。
【讨论】:
FROM node 并从中构建映像时,原来的 RUN 命令会被忽略?那太好了,我明天试试。