Docker容器中Vue项目http-server代理配置问题求助
解决Docker中http-server代理配置的问题
你的问题出在CMD数组的参数拆分方式上。当使用Docker CMD的exec格式(数组形式)时,每个命令参数必须作为数组的独立元素,不能把--proxy和它的目标URL合并成一个字符串。http-server会把合并后的字符串当成一个无效参数,导致报错。
正确的Dockerfile配置
修改CMD部分,将--proxy和代理地址拆分为两个独立的数组元素:
FROM node:lts-alpine RUN npm install -g http-server WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 8080 CMD [ "http-server", "dist", "--proxy", "http://localhost:8080?" ]
额外注意事项
- 如果你的后端服务运行在另一个Docker容器中,不能用
localhost,需要替换成后端容器的名称或者Docker网络内的服务地址(比如后端容器名为backend,则地址改为http://backend:8080?)。 - 确认http-server版本支持
--proxy参数,若仍有问题可指定最新版本安装:RUN npm install -g http-server@latest。
内容的提问来源于stack exchange,提问作者Phaneuf
相关产品推荐
相关产品推荐

