From 20f4ad8e4921df1f42a7f7624a558c8397416de0 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Tue, 2 Jul 2019 20:08:29 +0200 Subject: [PATCH] Resolved screen size issue, final Docker image uses Scratch --- Dockerfile | 12 ++++++------ README.md | 3 --- pkg/app/app.go | 16 +++++++++++++++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 872b3f83..656e0ff1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ ARG BASE_IMAGE_BUILDER=golang -ARG BASE_IMAGE=alpine ARG ALPINE_VERSION=3.10 ARG GO_VERSION=1.12.6 @@ -15,16 +14,17 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} GOARM=${GOARM} go build -a -instal -X main.version=${VERSION} \ -X main.buildSource=Docker" -FROM ${BASE_IMAGE}:${ALPINE_VERSION} -ARG VERSION +FROM scratch +ARG BUILD_DATE ARG VCS_REF +ARG VERSION LABEL org.label-schema.schema-version="1.0.0-rc1" \ maintainer="jessedduffield@gmail.com" \ + org.label-schema.build-date=$BUILD_DATE \ org.label-schema.vcs-ref=$VCS_REF \ org.label-schema.url="https://github.com/jesseduffield/lazydocker" \ org.label-schema.vcs-description="The lazier way to manage everything docker" \ org.label-schema.docker.cmd="docker run -it -v /var/run/docker.sock:/var/run/docker.sock lazydocker" \ org.label-schema.version=${VERSION} -RUN printf "#!/bin/sh\n\nresize > /dev/null\nlazydocker \$@\n" > /usr/bin/run && chmod 500 /usr/bin/run -ENTRYPOINT [ "/usr/bin/run" ] -COPY --from=builder /go/src/github.com/jesseduffield/lazydocker/lazydocker /usr/bin/lazydocker +ENTRYPOINT [ "/lazydocker" ] +COPY --from=builder /go/src/github.com/jesseduffield/lazydocker/lazydocker /lazydocker \ No newline at end of file diff --git a/README.md b/README.md index 5ecf72a3..d9122098 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,6 @@ go get github.com/jesseduffield/lazydocker ```sh docker build -t lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \ - --build-arg BASE_IMAGE=arm32v6/alpine \ --build-arg GOARCH=arm \ --build-arg GOARM=6 \ https://github.com/jesseduffield/lazydocker.git @@ -80,7 +79,6 @@ go get github.com/jesseduffield/lazydocker ```sh docker build -t lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \ - --build-arg BASE_IMAGE=arm32v7/alpine \ --build-arg GOARCH=arm \ --build-arg GOARM=7 \ https://github.com/jesseduffield/lazydocker.git @@ -91,7 +89,6 @@ go get github.com/jesseduffield/lazydocker ```sh docker build -t lazydocker \ --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \ - --build-arg BASE_IMAGE=arm64v8/alpine \ --build-arg GOARCH=arm64 \ https://github.com/jesseduffield/lazydocker.git ``` diff --git a/pkg/app/app.go b/pkg/app/app.go index 57015918..dc07d70a 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -2,7 +2,11 @@ package app import ( "io" + "os" "strings" + "time" + + "golang.org/x/crypto/ssh/terminal" "github.com/jesseduffield/lazydocker/pkg/commands" "github.com/jesseduffield/lazydocker/pkg/config" @@ -51,8 +55,18 @@ func NewApp(config *config.AppConfig) (*App, error) { } func (app *App) Run() error { + // before we do anything, we need to check that we have some window space available + for { + width, _, err := terminal.GetSize(int(os.Stdin.Fd())) + if err != nil { + return err + } + if width == 0 { + time.Sleep(time.Millisecond * 50) + } + break + } err := app.Gui.RunWithSubprocesses() - return err }