我当前正在尝试从Docker映像访问安装在Kubernetes容器中的文件。当我运行docker映像时,我需要用一个标志传递文件。
通常使用以下命令在容器外部运行docker映像:
docker run -p 6688:6688 -v ~/.chainlink-ropsten:/chainlink -it --env-file=.env smartcontract/chainlink local n -p /chainlink/.password -a /chainlink/.api
现在,我已成功使用以下配置在/ chainlink挂载我的环境,密码和api文件,但是在Docker运行期间尝试访问文件时,出现错误:
flag provided but not defined: -password /chainlink/.password
以下是我当前的Kubernetes部署文件
kind: Deployment
metadata:
name: chainlink-deployment
labels:
app: chainlink-node
spec:
replicas: 1
selector:
matchLabels:
app: chainlink-node
template:
metadata:
labels:
app: chainlink-node
spec:
containers:
- name: chainlink
image: smartcontract/chainlink:latest
args: [ "local", "n", "--password /chainlink/.password", "--api /chainlink/.api"]
ports:
- containerPort: 6689
volumeMounts:
- name: config-volume
mountPath: /chainlink/.env
subPath: .env
- name: api-volume
mountPath: /chainlink/.api
subPath: .api
- name: password-volume
mountPath: /chainlink/.password
subPath: .password
volumes:
- name: config-volume
configMap:
name: node-env
- name: api-volume
configMap:
name: api-env
- name: password-volume
configMap:
name: password-env
文件中是否缺少一些定义,该定义使我可以在运行docker映像时访问已装载的卷?
答案 0 :(得分:2)
将您的args
更改为:
args: [ "local", "n", "--password", "/chainlink/.password", "--api", "/chainlink/.api"]
您当前拥有它的方式是认为整个字符串--password /chainlink/.password
(包括空格)是一个标志。那就是错误所在:
flag provided but not defined: -password /chainlink/.password
告诉你