Kubernetes 环境变量在 sequelize-cli 中不起作用
Kubernetes env variables not working in sequelize-cli
我正在尝试 运行 以下命令:
npx sequelize-cli db:migrate
sequelize-cli
使用包含以下内容的 ./config/config.js
文件:
module.exports = {
username: process.env.PGUSER,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
password: process.env.PGPASSWORD,
port: process.env.PGPORT,
};
如果你console.log()
你们所有人process.env.<var>
,它都会回来undefined
。
但是,如果进入 Express 应用程序所在的 index.js
并且 console.log
同样的事情,它会返回预期值。
在所有这些过程中,我有 Kubernete 运行 skaffold.yaml
和 minikube
。
有没有办法在不为 运行 这些命令创建 .env
的情况下使它工作?
服务器-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: server-deployment
spec:
replicas: 3
selector:
matchLabels:
component: server
template:
metadata:
labels:
component: server
spec:
containers:
- name: server
image: sockpuppet/server
ports:
- containerPort: 5000
env:
- name: PGUSER
value: postgres
- name: PGHOST
value: postgres-cluster-ip-service
- name: PGPORT
value: '5432'
- name: PGDATABASE
value: postgres
- name: PGPASSWORD
value: ''
好吧,它不是很漂亮,但这是我能想到的最好的。希望有人有更好的答案...
由于这是一个由三个副本组成的 deployment
,它会产生三个 pods。必须先获取一个 ID:
kubectl get pod
一旦我有了它,我就可以执行以下操作:
kubectl exec -it server-deployment-84cf685559-gwkvt -- npx sequelize-cli db:migrate
可行,但有点乱。
发现 this link 效率更高,尤其是如果只是制作 alias
:
kubectl exec -it $(kubectl get pods -o name | grep -m1 INSERT_DEPLOYMENT_NAME_HERE | cut -d'/' -f 2) INSERT_YOUR_COMMAND_HERE
kubectl exec -it $(kubectl get pods -o name | grep -m1 server-deployment | cut -d'/' -f 2) "npx sequelize-cli db:migrate"
我正在尝试 运行 以下命令:
npx sequelize-cli db:migrate
sequelize-cli
使用包含以下内容的 ./config/config.js
文件:
module.exports = {
username: process.env.PGUSER,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
password: process.env.PGPASSWORD,
port: process.env.PGPORT,
};
如果你console.log()
你们所有人process.env.<var>
,它都会回来undefined
。
但是,如果进入 Express 应用程序所在的 index.js
并且 console.log
同样的事情,它会返回预期值。
在所有这些过程中,我有 Kubernete 运行 skaffold.yaml
和 minikube
。
有没有办法在不为 运行 这些命令创建 .env
的情况下使它工作?
服务器-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: server-deployment
spec:
replicas: 3
selector:
matchLabels:
component: server
template:
metadata:
labels:
component: server
spec:
containers:
- name: server
image: sockpuppet/server
ports:
- containerPort: 5000
env:
- name: PGUSER
value: postgres
- name: PGHOST
value: postgres-cluster-ip-service
- name: PGPORT
value: '5432'
- name: PGDATABASE
value: postgres
- name: PGPASSWORD
value: ''
好吧,它不是很漂亮,但这是我能想到的最好的。希望有人有更好的答案...
由于这是一个由三个副本组成的 deployment
,它会产生三个 pods。必须先获取一个 ID:
kubectl get pod
一旦我有了它,我就可以执行以下操作:
kubectl exec -it server-deployment-84cf685559-gwkvt -- npx sequelize-cli db:migrate
可行,但有点乱。
发现 this link 效率更高,尤其是如果只是制作 alias
:
kubectl exec -it $(kubectl get pods -o name | grep -m1 INSERT_DEPLOYMENT_NAME_HERE | cut -d'/' -f 2) INSERT_YOUR_COMMAND_HERE
kubectl exec -it $(kubectl get pods -o name | grep -m1 server-deployment | cut -d'/' -f 2) "npx sequelize-cli db:migrate"