首页 > 解决方案 > 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

标签: node.jsdockerdockerfile

解决方案


该指令:

RUN npm run dev

在映像构建期间运行服务,因此甚至永远不会构建映像,并且当您尝试连接到它时没有容器运行。它应该是:

ENTRYPOINT ["npm", "run", "dev"]

推荐阅读