我正在学习 docker,在将端口从 docker 容器发布到主机时遇到问题
我使用命令
docker build -t react-app .
为虚拟 React 应用程序(使用 Vite)创建了一个图像
下面是
Dockerfile
-
FROM node:16.17.0-alpine3.16
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
EXPOSE 5173
CMD ["npm", "run", "dev"]
并使用命令
docker run -d --name my-app -p 3000:5173 react-app
从图像创建了一个容器
注意 - 端口
是 Vite 使用的默认端口5173
但是当我尝试从主机访问
localhost:3000
时,它不起作用。
我还尝试使用容器 IP 地址而不是 localhost,但没有成功。我使用
docker exec my-app ifconfig
命令来获取容器IP地址
有些人建议使用
C:\Windows\System32\drivers\etc\hosts
下提到的IP地址,但这也没有帮助。
有人可以帮我解决这个问题吗?谢谢!
编辑:
这是
docker logs
命令的输出 -
根据Vite的官方文档,它要求我们传入
--host
参数来指定服务器应该监听哪些IP地址。
更多详细信息请点击此处 - https://vitejs.dev/config/server-options.html#server-host
更新了
package.json
以解决问题。
...
"scripts": {
"dev": "vite --host",
"build": "vite build",
"preview": "vite preview --host"
},
...
来自:
--host
帮助让它在开发容器内工作:
"scripts": {
...
"dev": "refine dev --host",
...
},