node.js - Docker 监听端口 3000,但浏览器上没有显示
问题描述
我正在 Docker 中构建一个 Node 应用程序。这是我的 Dockerfile:
FROM docker.artifacts.smit.sise/node:12.19.1
COPY . .
RUN mkdir certs \
&& cd /certs \
&& wget https://artifacts.smit.sise/artifactory/smit-certs-public/smit_ca.pem --no-check-certificate \
&& npm config set cafile /certs/smit_ca.pem \
&& npm config set registry https://artifacts.smit.sise/api/npm/npm
RUN mkdir /common_front/build/static \
&& ln -sf /front/build/assets/* /valisveeb_common_front/build/assets \
&& ln -sf /front/build/static/* /valisveeb_common_front/build/static \
&& ln -sf /front/build/generate.options.js/ \
&& ln -sf /front/build/settings.json /valisveeb_common_front/build/settings.json
#RUN cp -f envexample build/.env
WORKDIR /front/build
RUN ls -la \
&& npm install
RUN npm run dev
EXPOSE 3000
使用这些确切的命令在本地可以正常工作,但是在执行 Dockerfile 时,浏览器上什么也没有出现,尽管应用程序说“正在侦听端口 3000”。
这就是我所看到的:
https://i.stack.imgur.com/TwCqB.png
编辑:这是我运行它的:
docker build . && docker run -d --restart=always -p 3000:3000 . -it --ignore-certificate-errors
解决方案
该指令:
RUN npm run dev
在映像构建期间运行服务,因此甚至永远不会构建映像,并且当您尝试连接到它时没有容器运行。它应该是:
ENTRYPOINT ["npm", "run", "dev"]
推荐阅读
- java - 难以专注于硒中新打开的窗口
- reactjs - 每当我尝试访问一个元素时,数组就会变得未定义
- python - Python Pillow Image 转 PDF 然后合并内存问题
- nginx - 如何使用配置映射在容器中创建单个文件?
- c# - 两个单元格的水平位置对于 Word VSTO 中不同列中的单元格返回相同的结果
- bluetooth-lowenergy - 如何提高 ESP32 对 BLE 扫描的灵敏度?
- powershell - 嵌套的 ForEach 循环运行速度非常慢
- r - “错误:无效输入:time_trans 仅适用于 POSIXct 类的对象”,geom_rect 和 date/POSIXct 类型
- android - 既然 React Native 有自动链接,我们还需要使用 `react-native unlink` 来取消链接吗?
- terraform - Terraform - 具有多个计数的无效索引错误