dockerfile 和 kubernetes 作业(需要帮助)

dockerfile and kubernetes jobs ( assistance needed)

我有我的 docker 文件,我在其中使用了 postgres:12 图像,我使用一些 ddl 脚本修改了它,然后我构建了这个图像,我可以通过 运行 容器docker 运行 命令,但我如何使用 Kubernetes 作业来 运行 构建图像,因为我对 k8s 没有很好的经验。

这是我的docker文件,你可以在这里看到它。

docker build . -t dockerdb

FROM postgres:12 

ENV POSTGRES_PASSWORD xyz@123123!233 

ENV POSTGRES_DB test 

ENV POSTGRES_USER test 

COPY ./Scripts /docker-entrypoint-initdb.d/

我如何使用以下要求自定义以下代码

apiVersion: batch/v1
      kind: Job
      metadata:
        name: job-1
      spec:
        template:
          metadata:
            name: job-1
          spec:
            containers:
            - name: postgres
              image: gcr.io/project/pg_12:dev
              command:
              - /bin/sh
              - -c
              - "not sure what command should i give in last line" 

不确定 运行 如何处理 docker 图片

如果您运行在不通过任何命令的情况下运行设置您的docker图像,您可以直接运行作业中的图像。

docker run <imagename>

一旦您的 Dockerimage 准备就绪并构建,您就可以 运行 直接

您的作业将在不传递任何命令的情况下执行

apiVersion: batch/v1
      kind: Job
      metadata:
        name: job-1
      spec:
        template:
          metadata:
            name: job-1
          spec:
            containers:
            - name: postgres
              image: gcr.io/project/pg_12:dev

如果您想传递任何可以进一步传递的参数命令

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: <CHANGE IMAGE URL>
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

只是更新上面的模板是针对 Cronjob,Cronjob 运行 在特定时间。