如何将环境变量传递给 Azure 部署?

时间:2021-07-07 09:01:31

标签: django azure environment-variables configmap

我正在尝试在部署到 Azure 时让我的 API 正常工作。我目前的问题是由于某种原因,我的 Django 应用程序找不到在我的 be-configmap.yaml 文件中定义的环境变量。它在执行 .env 时尝试使用 python manage.py runserver 0.0.0.0:8000; 文件(该文件不存在)。

这是我的backend-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      name: backend
  strategy: {}
  template:
    metadata:
      labels:
        name: backend
    spec:
      containers:
      - args:
        - sh
        - -c
        - ls;
          python manage.py makemigrations;
          python manage.py migrate;
          python manage.py runserver 0.0.0.0:8000;
        env:
        - name: POSTGRES_USER
          value: xxx
        - name: POSTGRES_PASSWORD
          valueFrom:
            configMapKeyRef:
              key: DATABASE_PASSWORD
              name: backendSecrets
        - name: DATABASE_PASSWORD
          valueFrom:
            configMapKeyRef:
              key: DATABASE_PASSWORD
              name: backendSecrets
        image: myappcrwe.azurecr.io/backend:latest
        imagePullPolicy: Always
        name: container-backend
        ports:
        - containerPort: 8000
      restartPolicy: Always
      serviceAccountName: ""
      volumes: null
status: {}

这是我的be-configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: backendSecrets
data:
  DEBUG: xxx
  SECRET_KEY: xxx
  DATABASE_NAME: xxx
  DATABASE_USER: xxx
  DATABASE_PASSWORD: xxx
  DATABASE_PORT: xxx

如果有什么问题,为什么找不到变量,有人可以看看这些吗?

编辑。这是我尝试在 pod 内运行 python manage.py makemigrations 时收到的错误消息:

WARNING: Settings.py: No .env file available                                                                                                                                                                                                 
/usr/local/lib/python3.8/site- 
packages/django/core/management/commands/makemigrations.py:105: 
 RuntimeWarning: Got an error checking a consistent migration history 
performed for database connection 'default': could not connect to 
server: No such file or directory                                                                                                                                                                                                                            
Is the server running locally and accepting                                                                                                                                                                                                  
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?                                                                                                                                                                                                                                                                                                                                                                                                              
warnings.warn(                                                                                                                                                                                                                             
No changes detected

0 个答案:

没有答案