我目前正在開發一個 vue 應用程式。我在名為 "config.ts"
的檔案中設定環境變量,其中包含類似於以下程式碼的程式碼:
export const configs = { baseURL: process.env.VUE_APP_API_BASEURL || 'http://test.api.co/', }
我在本地使用 .env 測試了環境變量,如下所示
VUE_APP_API_BASEURL=https://test2.api.com
而且效果很好。
然後我使用 Dockerfile 對應用程式進行了 docker 化,如下所示:
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;"]
部署應用程式時,即使在任務定義中定義了變量,也看不到這些變數。
P粉9165538952024-03-29 17:15:12
所以我遇到了這個問題,因為我們的 DevOp 人員堅持認為我們有運行時環境變數。
我開發的解決方案是編寫一個 bash 腳本,該腳本注入一個腳本以將配置附加到視窗對象,使其可以作為運行時存取。