我有一个Vite Reaction应用程序,它使用环境变量与API对话:
const API_URL = import.meta.env.VITE_API_URL;
我正在使用以下Dockerfile将此应用程序部署到Fly.io:
FROM node:18 as build
WORKDIR /web
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=build /web/dist /usr/share/nginx/html
# This needs be referenced in fly.toml's internal_port
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
我在Fly.io容器的env中设置了VITE_API_URL
,并判断了它是否存在.
然而,当我部署这款应用程序时,API_URL
最终变成了undefined
.我认为这与ngix无法访问它有关.
我在开发时部署了另一个Dockerfile:
FROM node:18
WORKDIR /web
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5173
CMD ["npm", "run", "dev"]
这个可以访问Fly.io的秘密/环境变量.我怀疑这是因为我正在使用npm run dev
直接运行VITE代码.但是现在我正在通过nginx运行它,我想我可能需要做一些不同的事情来访问相同的环境变量?