Django 的 ./manage.py 总是会导致 skaffold 重建:有没有办法防止这种情况?



minikubeskaffold的局部k8s集群中发展。使用Django和DRF的API

我正在研究一些models.py,有一件事开始让人讨厌的是,任何时候我运行./manage.py命令(showmigrations,makemigrations等),它会触发API节点的skaffold重建。这只需要不到10秒的时间,但还是很烦人。

我应该从我的skaffold.yaml中排除/包含什么来防止这种情况?

apiVersion: skaffold/v2beta12
kind: Config
build:
artifacts:
- image: postgres
context: postgres
sync:
manual:
- src: "**/*.sql"
dest: .
docker:
dockerfile: Dockerfile.dev
- image: api
context: api
sync:
manual:
- src: "**/*.py"
dest: .
docker:
dockerfile: Dockerfile.dev
local:
push: false
deploy:
kubectl:
manifests:
- k8s/ingress/development.yaml 
- k8s/postgres/development.yaml
- k8s/api/development.yaml
defaultNamespace: development

似乎./manage.py必须在本地记录一些状态,从而触发重建。您需要将这些状态文件添加到您的.dockerignore

Skaffold通常以警告级别记录日志,该级别抑制触发同步或重建的细节。使用-v info运行Skaffold,您将看到更多细节:

$ skaffold dev -v info
...
[node] Example app listening on port 3000!
INFO[0336] files added: [backend/src/foo]               
INFO[0336] Changed file src/foo does not match any sync pattern. Skipping sync 
Generating tags...
- node-example -> node-example:v1.20.0-8-gc9335b0ad-dirty
INFO[0336] Tags generated in 80.293621ms                
Checking cache...
- node-example: Not found. Building
INFO[0336] Cache check completed in 1.844615ms          
Found [minikube] context, using local docker daemon.
Building [node-example]...

相关内容