Ich entwickle derzeit eine Vue-Anwendung. Ich habe Umgebungsvariablen in einer Datei namens "config.ts"
festgelegt, die Code ähnlich dem folgenden enthält:
export const configs = { baseURL: process.env.VUE_APP_API_BASEURL || 'http://test.api.co/', }
Ich habe die Umgebungsvariablen lokal mit .env getestet, wie unten gezeigt
VUE_APP_API_BASEURL=https://test2.api.com
Und es funktioniert großartig.
Ich habe die Anwendung dann mit einer Docker-Datei wie dieser angedockt:
FROM private_image_container/node:v16 as build-stage # declare args ARG VUE_APP_API_BASEURL # set env variables ENV VUE_APP_API_BASEURL=$VUE_APP_API_BASEURL RUN echo "VUE_APP_API_BASEURL=$VUE_APP_API_BASEURL" > .env WORKDIR /app COPY package.json ./ COPY yarn.lock ./ RUN yarn COPY . . RUN yarn build # production stage FROM private_image_container/nginx:latest as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Beim Bereitstellen der Anwendung sind die Variablen nicht sichtbar, selbst wenn sie in der Aufgabendefinition definiert sind.
所以我遇到了这个问题,因为我们的 DevOp 人员坚持认为我们有运行时环境变量。
我开发的解决方案是编写一个 bash 脚本,该脚本注入一个脚本以将配置附加到窗口对象,使其可以作为运行时访问。