1

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

这是我的 dockerfile 在这里你可以看到它。

码头工人建造。-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" 
4

1 回答 1

0

不确定您是如何运行 docker 映像的

如果您在不传递任何命令的情况下运行 docker 映像,则可以直接在 Job 中运行映像。

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 在特定时间运行。

于 2021-12-02T11:49:22.050 回答