我想运行一个名为 rstudio 包管理器的应用程序。它有一些终端命令要在部署后运行。有没有办法在部署文件中添加这些命令?我尝试过这种方式,但我遇到了 crashloopback 错误。我对编写部署文件完全陌生。我做错了什么或弄乱了语法吗?
apiVersion: apps/v1
kind: Deployment
metadata:
name: rspm-deployment
spec:
selector:
matchLabels:
app: rspm
replicas: 1
template:
metadata:
labels:
app: rspm
spec:
nodeSelector:
kubernetes.io/hostname: nckaoepekin.local
containers:
- env:
- name: RSPM_LICENSE
value: my_license_key
image: rstudio/rstudio-package-manager:latest
name: rstudio-package-manager
command: ["/bin/sh"]
args: ["-c", "alias rspm='/opt/rstudio-pm/bin/rspm'; rspm create repo --name=prod-cran --description='Access CRAN packages'; rspm subscribe --repo=prod-cran --source=cran; rspm sync"]
ports:
- containerPort: 4242
resources: {}
securityContext:
privileged: true
restartPolicy: Always
status: {}
---
kind: Service
apiVersion: v1
metadata:
name: rstudio-pm
spec:
selector:
app: rspm
ports:
- protocol: TCP
port: 4242
targetPort: 4242
nodePort: 31010
type: NodePort
我想添加这些终端命令(上面也指定)alias rspm='/opt/rstudio-pm/bin/rspm'
rspm create repo --name=prod-cran --description='Access CRAN packages'
rspm subscribe --repo=prod-cran --source=cran
rspm sync
当我删除指定的命令和参数时,部署文件正在工作。但是当我添加命令和参数时,我得到了 crashloopback 错误。任何线索将不胜感激。谢谢
最佳答案
您可以使用 poststart Hook here
lifecycle:
postStart:
exec:
command:
- "sh"
- "-c"
- |
alias rspm='/opt/rstudio-pm/bin/rspm' &&
rspm create repo --name=prod-cran --description='Access CRAN packages'&&
rspm subscribe --repo=prod-cran --source=cran &&
rspm sync
关于linux - 在部署文件中运行终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62995128/