部署/auth-mongo-depl:容器auth-mongo正在等待启动:无法拉动mongo

问题描述 投票:0回答:4

这是我的

auth-depl.yaml
文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
    spec:
      containers:
        - name: auth
          image: tester/auth
          env:
            - name: MONGO_URI
              value: 'mongodb://auth-mongo-srv:27017/auth'
            - name: JWT_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_KEY
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
spec:
  selector:
    app: auth
  ports:
    - name: auth
      protocol: TCP
      port: 3000
      targetPort: 3000

以下是

auth-mongo-depl.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-mongo-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth-mongo
  template:
    metadata:
      labels:
        app: auth-mongo
    spec:
      containers:
        - name: auth-mongo
          image: mongo
---
apiVersion: v1
kind: Service
metadata:
  name: auth-mongo-srv
spec:
  selector:
    app: auth-mongo
  ports:
    - name: db
      protocol: TCP
      port: 27017
      targetPort: 27017

当我运行

skaffold dev
时,它给了我以下错误:

 - deployment/auth-mongo-depl: container auth-mongo is waiting to start: mongo can't be pulled
    - pod/auth-mongo-depl-64f5f58669-dw4hg: container auth-mongo is waiting to start: mongo can't be pulled
 - deployment/auth-mongo-depl failed. Error: container auth-mongo is waiting to start: mongo can't be pulled.

mongo
服务已启动并正在运行,我可以在终端上运行
mongo
命令。它还在默认的
mongodb://127.0.0.1:27017
地址上启动并运行。我使用 Windows 10 和 Docker-Desktop。

如果需要添加更多信息,请告诉我。

mongodb docker kubernetes deployment pull-request
4个回答
2
投票

我遇到了类似的问题,这就是我解决的方法。我转到我的 Docker 桌面应用程序 (Mac) 并清理了所有 Docker 映像。我基本上删除了所有图像,其中还包括 mongo 图像。

然后我运行

skaffold dev
并再次构建所有图像,并将 mongo 的新副本添加到我的 Docker 桌面应用程序中。现在,我的代码成功启动,没有 mongo 错误。我希望这有帮助


1
投票

我遇到了类似的问题(花了我 3 个小时才弄清楚),我要做的就是在 Skaffold 上下文中设置本地或全局默认存储库:

全球

skaffold config set default-repo <your-dockerhub-repo>

本地项目

skaffold dev --default-repo <myrepo>

还在我的 skaffold.yaml 中,我必须将 Push 设置为 true:

build:
  local:
    push: true

在 Skaffold 文档中找到更多信息: https://skaffold.dev/docs/environment/image-registries/


0
投票

我认为常见的解决方案是将 Docker Hub 中的 mongo 镜像拉取到本地机器,然后尝试再次运行 skaffold dev


0
投票

skaffold 默认情况下尝试从 docker hub 检索图像。如果您同意从 docker hub 获取映像,只需将此配置添加到您的 skaffold.yaml 文件中,但请确保将映像推送到 docker hub 才能正常工作

build:
  local:
    push: true

如果您不希望 skaffold 从 docker hub 检索图像并希望在本地执行此操作。安装 minikube 并从终端运行 minikube start 并将 skaffold.yaml 的配置更改为

build:
  local:
    push: false

更改 skaffold.yaml 文件后,运行 skaffold dev 它可能应该修复你的错误。

© www.soinside.com 2019 - 2024. All rights reserved.