Commit Graph

35 Commits

Author SHA1 Message Date
Tonis Tiigi
bd29ad98cd progressui: fix logs time formatting
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-06-29 14:39:41 -07:00
Tonis Tiigi
a82c3c0728 progressui: fix panic on terminals with zero height
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-05-11 22:35:06 -07:00
Sebastiaan van Stijn
75ab2b1137 progress: disable truncating by default when using --progress=plain
Currently, `docker build --progress=plain` truncates output, which makes it
difficult to debug problems during build (the step that failed may not be the
cause of the failure).

For example, in the following build, the output of the `RUN echo ...` is truncated:

    DOCKER_BUILDKIT=1 docker build --no-cache --progress=plain -t foo -<<EOF
    FROM busybox
    RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ut lorem nec leo euismod vestibulum. Donec tortor nisl, iaculis at vehicula vel, interdum eu orci. Integer velit lacus, congue id magna eu, mollis accumsan augue. Aliquam non venenatis risus, eu posuere libero. Vestibulum ante ipsum primis in faucibus orci luctus." > /somewhere
    RUN echo "something went wrong"; exit 1
    EOF

    #5 [2/3] RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit....
    #5 DONE 0.2s

    #6 [3/3] RUN echo "something went wrong"; exit 1
    #6 0.211 something went wrong
    #6 ERROR: executor failed running [/bin/sh -c echo "something went wrong"; exit 1]: runc did not terminate sucessfully
    ------
     > [3/3] RUN echo "something went wrong"; exit 1:
    ------
    failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c echo "something went wrong"; exit 1]: runc did not terminate sucessfully

While there is an existing `PROGRESS_NO_TRUNC` environment variable, I think that
this should be the default if the user opted to use `--progress=plain` (or in
situations where no TTY is attached, which could be in CI).

This patch changes the default to disable truncating in those situations, but
allowing users to opt-out by setting `PROGRESS_NO_TRUNC=0`

With this change the same build looks like this:

    #5 [2/3] RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ut lorem nec leo euismod vestibulum. Donec tortor nisl, iaculis at vehicula vel, interdum eu orci. Integer velit lacus, congue id magna eu, mollis accumsan augue. Aliquam non venenatis risus, eu posuere libero. Vestibulum ante ipsum primis in faucibus orci luctus." > /somewhere
    #5 sha256:b2f0f47d63911ee55e7cf17c81007310e28190b5be84aa1a7869ba90786d5cee
    #5 DONE 0.2s

    #6 [3/3] RUN echo "something went wrong"; exit 1
    #6 sha256:c037b34bb998ae7d30572b489286da14df87e1478adf6d0c5c71c79b84b11bcc
    #6 0.293 something went wrong
    #6 ERROR: executor failed running [/bin/sh -c echo "something went wrong"; exit 1]: runc did not terminate sucessfully
    ------
     > [3/3] RUN echo "something went wrong"; exit 1:
    ------
    failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c echo "something went wrong"; exit 1]: runc did not terminate sucessfully

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-09 17:52:01 +02:00
Tonis Tiigi
c277824a71 progressui: allow vertex reset
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-09 17:43:52 -07:00
Tonis Tiigi
e1d2033bf1 progressui: allow unclipped output with env
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 16:51:37 -07:00
Tonis Tiigi
770dbc81bf progressui: print error again on plain mode
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 16:45:17 -07:00
Tonis Tiigi
d451b66bae progressui: improve plain progress
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 16:41:07 -07:00
Tonis Tiigi
9b081e607d progressui: fix padding length
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 08:50:25 -07:00
Tonis Tiigi
8908d4934a progressui: prioritize already shown logs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 08:45:40 -07:00
Tonis Tiigi
9363cbb19a progressui: limit refresh rate and make configurable
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 08:19:08 -07:00
Tonis Tiigi
9e73ce6da2 progressui: add logs to the terminal output
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-01 19:48:59 -07:00
Tonis Tiigi
12f178c045 progressui: wrap out of screen incomplete rows
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-01 13:51:50 -07:00
Tonis Tiigi
823e17eccd progressui: cache jobs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-01 10:57:45 -07:00
Ian Campbell
ccc559bc43 progressui: allow caller to customise "Building" string
In clients which are doinging multiple builds or phases it can be useful to say
something more specific here (e.g. "Building first image", "Probing" etc)

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-08-08 16:29:01 +01:00
Ian Campbell
dbd3d86a35 Reduce verbosity of non-console solve status.
Only report progress at most every 5s or 5% completion, which ever comes first.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-07-10 16:06:31 +01:00
Tonis Tiigi
07d8189603 progressui: fix log line separation bug
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-07-03 14:43:26 -07:00
Tonis Tiigi
2037b9540b progressui: constant prefix index for grep
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-06 14:31:48 -07:00
Tonis Tiigi
39e19516fc progressui: add better streaming text build status
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-06 14:31:42 -07:00
Tonis Tiigi
5727898274 progressui: handle zero window size
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-05-25 14:38:06 -07:00
Tonis Tiigi
d804819dad progress: fix skipping cached vertex progress
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-12-20 21:33:36 -08:00
Tonis Tiigi
afd146ccf9 buildctl: print progressbar to stderr
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-12-13 09:57:33 -08:00
Tonis Tiigi
ec389edb64 buildctl: disable progressbar if no console
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-12-01 23:52:27 -08:00
Tonis Tiigi
f41283caed solver: fix shared request progress and cancellation
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-09-27 12:45:47 -07:00
Tonis Tiigi
c4ca8c7811 progressui: fix flicker on printing byte sizes
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-09-25 21:01:39 -07:00
Tonis Tiigi
49f41bebff progressui: fix wrapping error on tabs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-09-01 19:34:17 -07:00
Tonis Tiigi
93757aef7f nested llb builds support
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-07-24 18:09:16 -07:00
Tonis Tiigi
09d7a2b9fa source: add progress to local sources
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-07-21 10:08:45 -07:00
Tonis Tiigi
25ba9d72de solver: first pass of instruction cache
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-07-06 20:42:17 -07:00
Tonis Tiigi
8067ce372e progress: better protection against flickering
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-30 11:36:59 -07:00
Tonis Tiigi
d918b28961 progress: show logs for a failed vertex
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-29 16:22:37 -07:00
Tonis Tiigi
2df68a5706 solver: add error reporting and canceling support
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-29 15:31:08 -07:00
Tonis Tiigi
b573060eea project: remove poc label
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-23 09:37:36 -07:00
Tonis Tiigi
c654d03037 progress: add terminal size detection
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-21 19:06:25 -07:00
Tonis Tiigi
4ed7fa3280 progress: refactor progress IDs to items
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-19 14:32:50 -07:00
Tonis Tiigi
13f3a45b1d progress: refactor multireader and add status display
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-06-16 16:10:42 -07:00