所以我有一个 VPS,它在本地主机的 8080 端口上公开一个 API 端点。
我有一个 Svelte 应用,它必须需要端点。为了构建 Svelte 应用,我docker-compose.yaml
使用
version: '3.8'
services:
frontend:
build:
context: ./frontend
target: development
volumes:
- ./frontend:/app
- /app/node_modules
ports:
- "5173:5173"
environment:
- NODE_ENV=development
在 frontend 文件夹中我有 Docker 文件
FROM node:23-alpine as development
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5173
CMD ["npm", "run", "dev", "--", "--host"]
FROM node:23-alpine as build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine as production
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
使用此设置,Svelteapp 似乎无法访问主机上的本地主机。我能够访问它的唯一方法是将行添加network_mode: host
到docker-compose. yaml
。这样,我就能够直接使用192.168.1.17访问主机的本地主机 IP ,这是我整个本地网络上的 IP。
有没有办法直接使用localhost
容器中的关键字访问本地主机 IP,或者只是不对可能改变的 IP 进行硬编码