gpt4 book ai didi

Kubernetes 环境变量在 sequelize-cli 中不起作用

转载 作者:行者123 更新时间:2023-12-02 12:31:27 24 4
gpt4 key购买 nike

我正在尝试运行以下命令:

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.jsconsole.log 相同的东西,它会返回预期值。

在所有这些过程中,我让 Kubernete 使用 skaffold.yamlminikube 运行。

有没有办法在不创建 .env 的情况下运行这些命令?

服务器部署.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,因此它会生成三个 pod。必须先获取一个 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"

关于Kubernetes 环境变量在 sequelize-cli 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com