这是我的
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。
如果需要添加更多信息,请告诉我。
我遇到了类似的问题(花了我 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/
我认为常见的解决方案是将 Docker Hub 中的 mongo 镜像拉取到本地机器,然后尝试再次运行 skaffold dev
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 它可能应该修复你的错误。