apiVersion: apps/v1 kind: Deployment metadata: name: postgis spec: replicas: 1 selector: matchLabels: {app: postgis} template: metadata: labels: {app: postgis} spec: containers: - name: postgis image: postgis/postgis:18-3.6-alpine env: - {name: POSTGRES_DB, value: who_need_help} - {name: POSTGRES_USER, value: postgres} - {name: POSTGRES_PASSWORD, value: postgres} ports: - {name: postgres, containerPort: 5432} readinessProbe: exec: command: ["pg_isready", "-U", "postgres", "-d", "who_need_help"] periodSeconds: 3 volumeMounts: - {name: data, mountPath: /var/lib/postgresql} volumes: - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: postgis spec: selector: {app: postgis} ports: - {name: postgres, port: 5432, targetPort: postgres} --- apiVersion: apps/v1 kind: Deployment metadata: name: mailpit spec: replicas: 1 selector: matchLabels: {app: mailpit} template: metadata: labels: {app: mailpit} spec: containers: - name: mailpit image: axllent/mailpit:v1.27 ports: - {name: smtp, containerPort: 1025} - {name: http, containerPort: 8025} --- apiVersion: v1 kind: Service metadata: name: mailpit spec: type: NodePort selector: {app: mailpit} ports: - {name: smtp, port: 1025, targetPort: smtp} - {name: http, port: 8025, targetPort: http, nodePort: 30227}