我正在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"]