【问题标题】:Docker Db and K8s job - help NeededDocker Db 和 K8s 工作 - 需要帮助
【发布时间】:2022-01-07 00:33:54
【问题描述】:

我有 docker db 映像,我需要从 Kubernetes 作业中运行它。 有人知道吗?如何通过 kubernetes 作业运行 docker 镜像。

以下是我的 dockerfile ,我能够成功构建映像。

  1. 有没有办法通过 docker 入口点使用 dockerfile 来运行它,如果有任何命令可以在开始时运行它?

  2. 或者我可以对 k8s 作业进行任何更改以实现此目的?

Docker 文件:

来自 postgres:12 ENV POSTGRES_PASSWORD xyz@123123!233 ENV POSTGRES_DB 测试 ENV POSTGRES_USER 测试 COPY ./Scripts /docker-entrypoint-initdb.d/

K8s 工作:

      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 kubernetes dockerfile


    【解决方案1】:

    看起来你使用 Postgres 作为默认图像而不修改它。在这种情况下,我会直接将变量传递给 k8s 部署,而不使用自定义图像:

    K8s 工作:

      apiVersion: batch/v1
      kind: Job
      metadata:
        name: job-1
      spec:
        template:
          metadata:
            name: job-1
          spec:
            containers:
            - name: postgres
              image: postgres:12
              env:
                - name: POSTGRES_PASSWORD
                  value: xyz@123123!233
                - name: POSTGRES_DB
                  value: test
                - name: POSTGRES_USER
                  value: test
    

    然后您不需要指定command,因为根据文档,默认命令是postgres。见image details

    【讨论】:

    • 谢谢罗伯特 - 我会测试和更新你
    • 酷,确保您使用postgres:12 作为图像。我在答案中更新了它。
    • Robert-Jan Kuyper - 我将从上面给出的 dockerfile 构建图像,然后我将使用您提供给我的 k8s 作业进行调用。我正在修改现有的 postgres:12 图像,如果您从 dockerfile 上方看到的话。你告诉我的 .yaml 文件仍然可以工作吗?
    • @MahendraRathore 您是否尝试使用提供的 .yaml?
    猜你喜欢
    • 2012-08-11
    • 2022-01-08
    • 2017-09-22
    • 2015-02-11
    • 2011-02-25
    • 2018-04-06
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多