如何解决内置的Vue.js应用程序是否可以读取Kubernetes部署中定义的环境变量?
所以我有一个项目,该项目构建了3个相互连接的kubernetes Pod,即server
,manager
和browser
,浏览器部分是使用Vue.js
实现的,其他正在使用Python Flask
。
我有一个configMap,用于存储其服务的地址,该地址应由以下三个地址共享:
apiVersion: v1
kind: ConfigMap
metadata:
name: env-config
data:
SERVER_ADDRESS: http://ai-recommender-service:3518
MANAGER_ADDRESS: http://manager-service:2354
使用browser
,部署部分如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: browser-deployment
labels:
app: browser
spec:
replicas: 1
selector:
matchLabels:
app: browser
template:
metadata:
labels:
app: browser
spec:
containers:
- name: browser
image: browser:latest
imagePullPolicy: Never
ports:
- containerPort: 80
env:
- name: MANAGER_ADDRESS
valueFrom:
configMapKeyRef:
name: env-config
key: MANAGER_ADDRESS
在Vue.js项目browser
中,我有一个.js
文件,该文件试图通过以下方式获取env变量:
const ServiceManagerUrl = process.env.MANAGER_ADDRESS;
但这不起作用。
我知道还有其他方法,例如在根文件夹中创建一个带有前缀.env
的变量VUE_APP_
,然后使用process.env.VUE_APP_MANAGER_ADDRESS
之类的文件加载它,但是Vue.js有什么方法可以直接获取通过Kubernetes部署传递的环境变量(因为这些变量由系统的其他部分共享),而不必求助于创建额外的文件?
-添加--
Dockerfile of browser
# build stage
FROM node:14-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。