繁体   English   中英

如何在 k8 Manifest 上导入外部文件

[英]How to import an external file on k8 Manifest

我有一个 docker-compose.yml 文件,其中包含我在为 Postgres 创建 docker 图像时导入安装 postgis 配置的外部文件的配置,

这是 docker 文件

services:
  postgres:
    container_name: postgres_db
    build:
      context: .
      dockerfile: Dockerfile-db
    image: postgres
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
      PGDATA: /data/postgres
    volumes:
      - postgres:/data/postgres
    ports:
      - "5454:5454"
    networks:
      - postgres

正在导入的文件称为Dockerfile-db

FROM postgres:14.1


RUN apt-get update && apt-get  install -y postgresql-14-postgis-3  


CMD ["/usr/local/bin/docker-entrypoint.sh","postgres"]

我怎样才能对 K8 清单文件进行相同的导入。 这是我添加数据库的地方

spec:
  serviceName: zone-service-db-service
  selector:
    matchLabels:
      app: zone-service-db
  replicas: 1
  template:
    metadata:
      labels:
        app: zone-service-db
    spec:
      tolerations:
        - key: "podType"
          operator: "Equal"
          value: "isDB"
          effect: "NoSchedule"
      containers:
        - name: postgres
          image: postgres:latest
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 5432
          envFrom:
            - configMapRef:
                name: zone-service-db
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
          resources:
            requests:
              memory: '256Mi'
              cpu: '100m'
            limits:
              memory: '256Mi'
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: zone-service-pv-claim

如何在 k8 清单文件上导入Dockerfile-db并在创建 Postgres 容器期间调用并在 docker-image 上提供扩展? 任何帮助表示赞赏

我相信你收到了这个错误

ERROR:  type "geometry" does not exist

您在上面添加的文件主要适用于docker-compose ,但对于 Kube.netes,要让 Postgress 和 Postgis 一起工作,您必须向我们提供 postgis 图像而不是像这样的 postgres 图像

spec:
  serviceName: zone-service-db-service
  selector:
    matchLabels:
      app: zone-service-db
  replicas: 1
  template:
    metadata:
      labels:
        app: zone-service-db
    spec:
      tolerations:
        - key: "podType"
          operator: "Equal"
          value: "isDB"
          effect: "NoSchedule"
      containers:
        - name: postgres
          image: postgis/postgis:latest
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 5432
          envFrom:
            - configMapRef:
                name: zone-service-db
          volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgredb
          resources:
            requests:
              memory: '256Mi'
              cpu: '100m'
            limits:
              memory: '256Mi'
      volumes:
        - name: postgredb
          persistentVolumeClaim:
            claimName: zone-service-pv-claim

试试这个并提出建议。 无需导入外部文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM