0

如何在 dockerfile 中有两个图像并链接?

我不想使用 docker compose,我想要这样的东西

FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm i
COPY . /usr/src/app
EXPOSE 4000
CMD [ "npm", "start" ]

FROM mongo:latest as mongo 
WORKDIR /data
VOLUME ["/data/db"]
EXPOSE 27017

但我不知道如何加入图像

谢谢

4

2 回答 2

0

我认为简单的解决方案是从 mongo 图像创建自己的图像并手动安装节点。

您可以FROM在 Dockerfile 中有多个:

FROM 可以在单个 Dockerfile 中多次出现以创建多个映像或使用一个构建阶段作为另一个构建阶段的依赖项。只需在每个新的 FROM 指令之前记下提交的最后一个图像 ID 输出。每个 FROM 指令都会清除先前指令创建的任何状态。

来自:https ://docs.docker.com/engine/reference/builder/#from

于 2018-04-17T14:26:39.150 回答
0
  • Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。

  • Dockerfile 是一个文本文档,其中包含用户可以在命令行上调用以组装图像的所有命令。

为 node 和 mongo 创建一个映像意味着您将在容器中同时拥有它们,并启动并运行(更多资源,更难调试,容器不太稳定,日志将难以跟踪等)。

创建单独的图像,以便您可以独立运行任何图像:

$ docker run -d -p 4000:4000 --name node myNode

$ docker run -d -p 27017:27017 --name mongo myMongo

我强烈建议您使用撰写文件,它可以让您更好地控制整个环境。

于 2018-04-17T15:23:56.680 回答