node.js - 容器启动时如何运行命令 - Docker
问题描述
这是 Dockerfile:
FROM nginx:stable-alpine
COPY ./mailservice /var/www/backend
COPY ./dist /usr/share/nginx/html
COPY ./docker/nginx_config/default.conf /etc/nginx/conf.d/default.conf
COPY ./docker/nginx_config/.htpasswd /etc/nginx
RUN chown -R nginx:nginx /usr/share/nginx/html/ \
&& chown -R nginx:nginx /etc/nginx/.htpasswd \
&& apk add --update nodejs nodejs-npm
WORKDIR /var/www/backend
RUN npm run start
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
但是我的RUN npm run start
不起作用,我必须手动将外壳附加到容器,然后自己运行它。npm run start
容器启动后正确的启动方式是什么?
更新
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT ["node", "server.js"]
这行得通吗?
解决方案
最佳实践表明每个容器不应运行多个进程。除非您的应用程序是以从唯一入口点启动多个进程的方式制作的。
但是您可以使用一些解决方法。尝试检查这个问题:Docker multiple entrypoints
推荐阅读
- jquery - 将参数传递给剑道对话框jquery
- python - TensorFlow | 如何实现 10 倍交叉验证?
- css - 剑道网格排序图标消失(Angular 9)
- android - 有没有办法绕过 OpenGL ES 中的最大片段采样器?
- android - Flutter - 获取 Android 设备名称
- angularjs - Tensorflow.js 预测结果不变
- javascript - React js 中的嵌入式 .doc 和 .txt 查看器
- python - 在python中将图像转换为灰度
- java - 如何转换 ArrayList
到java中的字符串值的json数组 - rxjs - RxJS 哪个运算符用于“onIdle”?