GoogleContainerTools / GoogleContainerTools/skaffold
Skaffold docker push does not stream progress
- Dominant language
- Go
- Stars
- 15.9k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 10
Description
When running `skaffold dev`, the docker push progress bar doesn't handle streaming updates. Instead, it incrementally outputs a new line whenever a layer's state changes.
### Expected behavior
`skaffold dev` implicit `docker push` shows streaming progress bar like an explicit docker push, e.g:
```
The push refers to repository [559031956274.dkr.ecr.us-east-1.amazonaws.com/cicd-test]
03a3fba932f5: Layer already exists
72667de3c117: Layer already exists
9256e6ae6b91: Pushing [=> ] 3.721MB/151MB
6208a2060f00: Layer already exists
84f0cb42ef7f: Layer already exists
b815dba036f7: Layer already exists
873680bbe0c1: Layer already exists
4314eadea369: Layer already exists
0a69ca1954c9: Layer already exists
996562dd026d: Waiting
23a4b35a343d: Waiting
13e8b36cbbec: Waiting
821bf6371720: Waiting
8d3476a52917: Waiting
40572195ea84: Waiting
024595e1462f: Waiting
```
Note the `Pushing` line and the fact that every layer is represented exactly once.
### Actual behavior
Skaffold's push looks like this:
```
The push refers to repository [559031956274.dkr.ecr.us-east-1.amazonaws.com/cicd-test]
03a3fba932f5: Preparing
72667de3c117: Preparing
9256e6ae6b91: Preparing
6208a2060f00: Preparing
84f0cb42ef7f: Preparing
b815dba036f7: Preparing
873680bbe0c1: Preparing
4314eadea369: Preparing
0a69ca1954c9: Preparing
996562dd026d: Preparing
23a4b35a343d: Preparing
13e8b36cbbec: Preparing
821bf6371720: Preparing
8d3476a52917: Preparing
40572195ea84: Preparing
024595e1462f: Preparing
4314eadea369: Waiting
0a69ca1954c9: Waiting
996562dd026d: Waiting
23a4b35a343d: Waiting
13e8b36cbbec: Waiting
821bf6371720: Waiting
8d3476a52917: Waiting
40572195ea84: Waiting
024595e1462f: Waiting
b815dba036f7: Waiting
873680bbe0c1: Waiting
72667de3c117: Layer already exists
6208a2060f00: Layer already exists
03a3fba932f5: Layer already exists
84f0cb42ef7f: Layer already exists
b815dba036f7: Layer already exists
4314eadea369: Layer already exists
873680bbe0c1: Layer already exists
0a69ca1954c9: Layer already exists
23a4b35a343d: Layer already exists
13e8b36cbbec: Layer already exists
996562dd026d: Layer already exists
```
Only preparing/waiting/layer exists/pushed is outputed, any layer state change is a new line, and there is no indication of progress. Output will hang if a layer is being pushed.
### Information
- Skaffold version: v1.37.0
- Operating system: Mac OS
- Installed via: skaffold.dev
- Contents of skaffold.yaml:
```yaml
apiVersion: skaffold/v2beta27
kind: Config
build:
platforms:
- linux/x86_64
artifacts:
- image: *.dkr.ecr.us-east-1.amazonaws.com/[service]
context: "[path-to-service]"
local:
useBuildkit: true
tagPolicy:
envTemplate:
template: [tag]
deploy:
statusCheckDeadlineSeconds: 600
kustomize:
paths:
- "[path-to-kustomization.yaml]"
```
### Steps to reproduce the behavior
1. skaffold dev --force=true -f skaffold.yaml
This might be the same as https://github.com/GoogleContainerTools/skaffold/issues/41, can't quite tell. Also, my colleagues report that this _used_ to work on previous skaffold versions -- haven't confirmed that myself.
Contributor guide
Assessment
This issue has not been assessed yet.