我有以下的Node.js dockerfile:
我需要在容器启动后动态运行自定义JS脚本。我该如何实现?
更新: 我尝试在CMD之后添加以下入口点,但是既没有执行CMD也没有执行ENTRYPOINT:
# pull image
FROM node:13.12.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install
# add app
COPY . ./
# start app
CMD node server dev
我需要在容器启动后动态运行自定义JS脚本。我该如何实现?
更新: 我尝试在CMD之后添加以下入口点,但是既没有执行CMD也没有执行ENTRYPOINT:
ENTRYPOINT node customScript.js
添加了一个包装的shell脚本(startup.sh),以包含这两个命令:
#!/bin/sh
nohup node server dev > startup.log && node data/scripts/custom.js > custom.log
已将CMD替换为:
CMD ["./startup.sh"]
这只执行了 shell 中的第一个命令,而不是第二个。我也没有看到容器中创建输出重定向日志文件。
ENTRYPOINT
的话,你应该能够docker run the-same-image some other command
。 - David Maze