在kubernetes容器中运行bash脚本

时间:2020-11-07 06:47:45

标签: kubernetes kubectl kubernetes-jobs

我正在尝试使用以下yaml文件运行外部bash脚本。

该脚本在/scripts/run.sh文件夹中。我还给了defaultMode: 0777

这是我得到的错误。

sh: 0: Can't open /scripts/run.sh
apiVersion: v1
data:
  script.sh: |-
    echo "Hello world!"
    kubectl get pods
kind: ConfigMap
metadata:
  name: script-configmap
---
apiVersion: batch/v1
kind: Job
metadata:
  labels:
    app: script-job
  name: script-job
spec:
  backoffLimit: 2
  template:
    spec:
      containers:
        - command:
            - sh
            - /scripts/run.sh
          image: 'bitnami/kubectl:1.12'
          name: script
          volumeMounts:
            - name: script-configmap
              mountPath: /scripts
              subPath: run.sh              
              readOnly: false
      restartPolicy: Never
      volumes:
        - name: script-configmap
          configMap:
            name: script-configmap
            defaultMode: 0777

1 个答案:

答案 0 :(得分:2)

文件名是run.sh而不是containers: - command: - sh - /scripts/script.sh

尝试

class MainActivity : AppCompatActivity() {

    lateinit var onCameraClick : () -> Unit

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            SampleTheme {
                Surface(color = MaterialTheme.colors.background) {
                    MainView(onCameraClick = onCameraClick)
                }
            }
        }

        onCameraClick = {
            // Camera logic inside activity scope.
        }
    }
}

@Composable
fun MainView(onCameraClick : () -> Unit) {
    Button(onClick = onCameraClick) {
        Text(text = "Camera")
    }
}