我有一个用Laravel构建的应用程序,以及我想让它们通过前端访问的env变量之一。
正如官方的Laravel文档所指出的:https://laravel.com/docs/master/mix#environment-variables
如果我们用MIX_前缀对特定的env变量进行前缀,它们就可以从JavaScript中获得和访问。在当地,这是完美的工作。
现在,问题是,在部署到暂存和生产时,我希望通过Kubernetes configmap设置env变量。
这是我的config-map.yaml文件
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "common.fullname" . }}-app-config
labels:
{{- include "common.labels" . | indent 4 }}
data:
.env: |+
EVENT_LOGGER_API={{ .Values.app.eventLoggerApi }}
MIX_EVENT_LOGGER_API="${EVENT_LOGGER_API}"现在,我的deployment.yaml文件
volumes:
- name: app-config
configMap:
name: {{ template "common.fullname" . }}-app-config
volumeMounts:
- name: app-config
mountPath: /var/www/html/.env
subPath: .env此env变量在后端Laravel中可见,但在本地运行时不能通过JavaScript访问。
process.env.MIX_EVENT_LOGGER_API在通过K8 configmap设置这个env变量以及通过JavaScript访问这些变量之前,有人有过这样的经验吗?
发布于 2022-02-16 17:01:32
如果在构建前端之后添加变量,则这些变量将不可用。
您需要在构建/推送的工作中包含这些变量。
https://stackoverflow.com/questions/71139196
复制相似问题