首页 > 解决方案 > 在 Dockerfile 中运行多个命令

问题描述

我想先运行 booksServer,然后是 customersServer,然后运行 ​​main.js

但在启动 main.js 之前,我想确保customersServer 和booksServer 首先运行。

我该如何正确地做到这一点?

这是我的 dockerfile 现在

FROM node:12.14.0
WORKDIR /usr/src/app
COPY package*.json ./
COPY . /usr/src/app
RUN npm install
RUN npm install nodemon -g
EXPOSE 4555
CMD nodemon /books/booksServer.js && nodemon /customers/customersServer.js && node /main/main.js

我知道通常你想为多个进程分离容器,但是这样做时我遇到了 gRPC 问题......所以我现在想将它作为一个 dockerfile 尝试。

标签: dockerdockerfiledocker-machinedocker-registry

解决方案


假设booksServer.jscustomersServer.js提供通信端口,您可以使用脚本。该脚本通常用于等待另一个服务准备好使用。


推荐阅读