Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't use bash as the entrypoint for docker #5818

Merged
merged 1 commit into from
Dec 9, 2019

Conversation

afbjorklund
Copy link
Collaborator

The bash shell is not very good at playing init(1), let
tini handle this instead by doing docker run --init.

This makes it forward signals properly to e.g. make,
and also reaps processes for long-running containers.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Nov 2, 2019
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: afbjorklund

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 2, 2019
@codecov-io
Copy link

codecov-io commented Nov 2, 2019

Codecov Report

Merging #5818 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #5818   +/-   ##
=======================================
  Coverage   36.53%   36.53%           
=======================================
  Files         110      110           
  Lines        8116     8116           
=======================================
  Hits         2965     2965           
  Misses       4762     4762           
  Partials      389      389

@sharifelgamal
Copy link
Collaborator

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Nov 4, 2019
@sharifelgamal
Copy link
Collaborator

/ok-to-test

@kubernetes kubernetes deleted a comment from minikube-bot Nov 5, 2019
@kubernetes kubernetes deleted a comment from minikube-bot Nov 6, 2019
@priyawadhwa
Copy link

Hey @afbjorklund looks like the Jenkins cross build failed with this error:

15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
...
15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
15:45:02 /build.sh: line 65: /usr/bin/dirname: Argument list too long
15:45:05 Makefile:430: recipe for target 'out/docker-machine-driver-hyperkit' failed
15:45:05 make: *** [out/docker-machine-driver-hyperkit] Error 143
15:45:05 + failed=2

@priyawadhwa
Copy link

I can repro locally with:

MINIKUBE_BUILD_IN_DOCKER=y make out/docker-machine-driver-hyperkit

@minikube-bot
Copy link
Collaborator

Error: running mkcmp: exit status 1

@medyagh
Copy link
Member

medyagh commented Nov 6, 2019

/retest this please

@afbjorklund
Copy link
Collaborator Author

@priyawadhwa good to know! I can't test on that platform

@medyagh
Copy link
Member

medyagh commented Nov 6, 2019

I was hoping travis would pick up the master's new Travis config which does a minikube build inside travis linux ( but it seems like the travis pull request trigger, ignores to pull master) ....

@medyagh
Copy link
Member

medyagh commented Nov 6, 2019

@afbjorklund if you are curious of the logs on jenkins :

12:27:18 GitHub pull request #5818 of commit 0173964362f85842ac75aed4906ee1d095cd350c, no merge conflicts.
12:27:18 Running as SYSTEM
12:27:18 Setting status of 0173964362f85842ac75aed4906ee1d095cd350c to PENDING with url https://storage.googleapis.com/minikube-builds/logs/5818/index.html and message: 'Build started for merge commit.'
12:27:18 Using context: Jenkins Cross Build
12:27:18 [EnvInject] - Loading node environment variables.
12:27:18 [EnvInject] - Preparing an environment for the build.
12:27:18 [EnvInject] - Keeping Jenkins system variables.
12:27:18 [EnvInject] - Keeping Jenkins build variables.
12:27:18 [EnvInject] - Evaluating the Groovy script content
12:27:19 [EnvInject] - Injecting contributions.
12:27:19 Building on master in workspace /var/lib/jenkins/go/src/k8s.io/minikube
12:27:19 [WS-CLEANUP] Deleting project workspace...
12:27:19 [WS-CLEANUP] Deferred wipeout is used...
12:27:19 [WS-CLEANUP] Done
12:27:19 No credentials specified
12:27:19 Cloning the remote Git repository
12:27:19 Cloning repository https://github.com/kubernetes/minikube.git
12:27:19  > git init /var/lib/jenkins/go/src/k8s.io/minikube # timeout=10
12:27:19 Fetching upstream changes from https://github.com/kubernetes/minikube.git
12:27:19  > git --version # timeout=10
12:27:19  > git fetch --tags --progress -- https://github.com/kubernetes/minikube.git +refs/heads/*:refs/remotes/origin/*
12:27:25  > git config remote.origin.url https://github.com/kubernetes/minikube.git # timeout=10
12:27:25  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
12:27:25  > git config remote.origin.url https://github.com/kubernetes/minikube.git # timeout=10
12:27:25 Fetching upstream changes from https://github.com/kubernetes/minikube.git
12:27:25  > git fetch --tags --progress -- https://github.com/kubernetes/minikube.git +refs/pull/*:refs/remotes/origin/pr/*
12:27:35  > git rev-parse refs/remotes/origin/pr/5818/merge^{commit} # timeout=10
12:27:35  > git rev-parse refs/remotes/origin/origin/pr/5818/merge^{commit} # timeout=10
12:27:35 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://wiki.jenkins-ci.org/display/JENKINS/Remove+Git+Plugin+BuildsByBranch+BuildData
12:27:35 Checking out Revision cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a (refs/remotes/origin/pr/5818/merge)
12:27:35  > git config core.sparsecheckout # timeout=10
12:27:35  > git checkout -f cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a
12:27:37 Commit message: "Merge 0173964362f85842ac75aed4906ee1d095cd350c into cf953f9d8cb7cba5d5cbc68e2ed9458e42c47e28"
12:27:37 First time build. Skipping changelog.
12:27:37 Run condition [Environment variable exists] enabling prebuild for step [Inject environment variables]
12:27:37 [EnvInject] - Injecting environment variables from a build step.
12:27:37 [EnvInject] - Injecting as environment variables the properties content 
12:27:37 THE_COMMIT=$GIT_COMMIT
12:27:37 
12:27:37 [EnvInject] - Variables injected successfully.
12:27:37 Variable Existence Condition: checking "sha1" variable 
12:27:37 Run condition [Environment variable exists] enabling perform for step [Inject environment variables]
12:27:37 [EnvInject] - Injecting environment variables from a build step.
12:27:37 [EnvInject] - Injecting as environment variables the properties content 
12:27:37 THE_COMMIT=0173964362f85842ac75aed4906ee1d095cd350c
12:27:37 
12:27:37 [EnvInject] - Variables injected successfully.
12:27:37 [minikube] $ /bin/bash -xe /tmp/jenkins1748701233179856122.sh
12:27:37 + set -e
12:27:37 + env
12:27:37 ghprbPullId=5818
12:27:37 ghprbPullTitle=Don't use bash as the entrypoint for docker
12:27:37 [email protected]
12:27:37 GIT_COMMIT=cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a
12:27:37 RUN_DISPLAY_URL=http://mkproxy.cbf.corp.google.com/job/Build_Cross/9048/display/redirect
12:27:37 ROOT_BUILD_CAUSE_GHPRBCAUSE=true
12:27:37 JENKINS_URL=http://mkproxy.cbf.corp.google.com/
12:27:37 EXECUTOR_NUMBER=1
12:27:37 BUILD_CAUSE_GHPRBCAUSE=true
12:27:37 LANG=en_US.UTF-8
12:27:37 BUILD_CAUSE=GHPRBCAUSE
12:27:37 BUILD_ID=9048
12:27:37 ghprbActualCommit=0173964362f85842ac75aed4906ee1d095cd350c
12:27:37 ghprbPullAuthorLogin=afbjorklund
12:27:37 RUN_CHANGES_DISPLAY_URL=http://mkproxy.cbf.corp.google.com/job/Build_Cross/9048/display/redirect?page=changes
12:27:37 ghprbAuthorRepoGitUrl=https://github.com/afbjorklund/minikube.git
12:27:37 ghprbPullLongDescription=The bash shell is not very good at playing init(1), let\r\ntini handle this instead by doing `docker run --init`.\r\n\r\nThis makes it forward signals properly to e.g. make,\r\nand also reaps processes for long-running containers.
12:27:37 ghprbGhRepository=kubernetes/minikube
12:27:37 JOB_BASE_NAME=Build_Cross
12:27:37 ghprbTriggerAuthorLogin=afbjorklund
12:27:37 GIT_URL=https://github.com/kubernetes/minikube.git
12:27:37 HUDSON_COOKIE=34a75734-598f-45a9-a076-85e251275a27
12:27:37 XDG_SESSION_ID=c4
12:27:37 THE_COMMIT=0173964362f85842ac75aed4906ee1d095cd350c
12:27:37 BRANCH=origin/pr/5818/merge
12:27:37 USER=jenkins
12:27:37 ghprbActualCommitAuthor=Anders F Björklund
12:27:37 GOPATH=/go
12:27:37 BUILD_NUMBER=9048
12:27:37 ghprbTargetBranch=master
12:27:37 WORKSPACE=/var/lib/jenkins/go/src/k8s.io/minikube
12:27:37 ghprbPullDescription=GitHub pull request #5818 of commit 0173964362f85842ac75aed4906ee1d095cd350c, no merge conflicts.
12:27:37 PWD=/var/lib/jenkins/go/src/k8s.io/minikube
12:27:37 HUDSON_URL=http://mkproxy.cbf.corp.google.com/
12:27:37 HOME=/var/lib/jenkins
12:27:37 ghprbTriggerAuthor=Anders Björklund
12:27:37 NODE_NAME=master
12:27:37 HUDSON_SERVER_COOKIE=fd8a7b33dde6712f
12:27:37 [email protected]
12:27:37 JENKINS_HOME=/var/lib/jenkins
12:27:37 JOB_NAME=Build_Cross
12:27:37 access_token=****
12:27:37 HUDSON_HOME=/var/lib/jenkins
12:27:37 JOB_DISPLAY_URL=http://mkproxy.cbf.corp.google.com/job/Build_Cross/display/redirect
12:27:37 ghprbCredentialsId=04625964-be0c-49a5-9df5-167b8a518fbe
12:27:37 [email protected]
12:27:37 MAIL=/var/mail/jenkins
12:27:37 BUILD_URL=http://mkproxy.cbf.corp.google.com/job/Build_Cross/9048/
12:27:37 ghprbPullLink=https://github.com/kubernetes/minikube/pull/5818
12:27:37 SHELL=/bin/bash
12:27:37 JOB_URL=http://mkproxy.cbf.corp.google.com/job/Build_Cross/
12:27:37 ghprbCommentBody=@priyawadhwa good to know! I can't test on that platform
12:27:37 BUILD_DISPLAY_NAME=#9048
12:27:37 ROOT_BUILD_CAUSE=GHPRBCAUSE
12:27:37 SHLVL=2
12:27:37 GIT_BRANCH=docker-entrypoint
12:27:37 BUILD_TAG=jenkins-Build_Cross-9048
12:27:37 NODE_LABELS=linux master
12:27:37 LOGNAME=jenkins
12:27:37 XDG_RUNTIME_DIR=/run/user/108
12:27:37 LOGS_FOLDER=5818
12:27:37 ghprbSourceBranch=docker-entrypoint
12:27:37 PATH=/var/lib/jenkins/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin
12:27:37 ghprbPullAuthorLoginMention=@afbjorklund
12:27:37 sha1=origin/pr/5818/merge
12:27:37 ghprbTriggerAuthorLoginMention=@afbjorklund
12:27:37 JENKINS_SERVER_COOKIE=fd8a7b33dde6712f
12:27:37 _=/usr/bin/env
12:27:37 + cp -r hack/jenkins out/
12:27:37 + '[' -d hack/prow ']'
12:27:37 + cp hack/prow/run_tests.py out/
12:27:37 + bash -x hack/jenkins/minikube_cross_build_and_upload.sh
12:27:37 + set -eux -o pipefail
12:27:37 + readonly bucket=minikube-builds
12:27:37 + bucket=minikube-builds
12:27:37 ++ grep '^GO_VERSION' Makefile
12:27:37 ++ awk '{ print $3 }'
12:27:37 + WANT_GOLANG_VERSION=1.12.12
12:27:37 + ./hack/jenkins/installers/check_install_golang.sh 1.12.12 /usr/local
12:27:37 + (( 2 < 2 ))
12:27:37 + VERSION_TO_INSTALL=1.12.12
12:27:37 + INSTALL_PATH=/usr/local
12:27:37 + check_and_install_golang
12:27:37 + go version
12:27:37 ++ go version
12:27:37 + [[ go version go1.12.12 linux/amd64 =~ (([0-9]+)\.([0-9]+).([0-9]+).([.0-9]*)) ]]
12:27:37 + HOST_VERSION='1.12.12 '
12:27:37 + '[' 1.12.12 = 1.12.12 ']'
12:27:37 + echo 'go version on the host looks good : 1.12.12 '
12:27:37 go version on the host looks good : 1.12.12 
12:27:37 + declare -rx BUILD_IN_DOCKER=y
12:27:37 + declare -rx GOPATH=/var/lib/jenkins/go
12:27:37 + declare -rx ISO_BUCKET=minikube-builds/5818
12:27:37 + declare -rx ISO_VERSION=testing
12:27:37 + declare -rx TAG=0173964362f85842ac75aed4906ee1d095cd350c
12:27:37 ++ docker ps -q
12:27:37 + docker kill
12:27:37 "docker kill" requires at least 1 argument(s).
12:27:37 See 'docker kill --help'.
12:27:37 
12:27:37 Usage:  docker kill [OPTIONS] CONTAINER [CONTAINER...]
12:27:37 
12:27:37 Kill one or more running containers
12:27:37 + true
12:27:37 ++ docker ps -aq
12:27:37 + docker rm
12:27:37 "docker rm" requires at least 1 argument(s).
12:27:37 See 'docker rm --help'.
12:27:37 
12:27:37 Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]
12:27:37 
12:27:37 Remove one or more containers
12:27:37 + true
12:27:37 + make -j 16 all
12:27:37 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make pkg/minikube/assets/assets.go'
12:27:38 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make pkg/minikube/translate/translations.go'
12:27:38 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init karalabe/xgo-1.12.x /bin/bash -c 'CC=o64-clang CXX=o64-clang++ /usr/bin/make out/docker-machine-driver-hyperkit'
12:27:38 docker inspect -f '{{.Id}} {{.RepoTags}}' gcr.io/k8s-minikube/kvm-build-image:1.12.12 || make kvm-image
12:27:38 sha256:4fb396f43f56ec33217bbbfe42e077998192b7c7c31f29dfb2065ac20b0c9250 [gcr.io/k8s-minikube/kvm-build-image:1.12.12]
12:27:38 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init gcr.io/k8s-minikube/kvm-build-image:1.12.12 /bin/bash -c '/usr/bin/make out/docker-machine-driver-kvm2 COMMIT="cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a"'
12:27:39 which go-bindata || GO111MODULE=off GOBIN="/go/bin" go get github.com/jteeuwen/go-bindata/...
12:27:39 /go/bin/go-bindata
12:27:39 PATH="/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/go/bin" go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
12:27:39 gofmt -s -w pkg/minikube/assets/assets.go
12:27:40 which go-bindata || GO111MODULE=off GOBIN="/go/bin" go get github.com/jteeuwen/go-bindata/...
12:27:40 /go/bin/go-bindata
12:27:40 PATH="/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/go/bin" go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
12:27:40 gofmt -s -w pkg/minikube/translate/translations.go
12:27:41 go build \
12:27:41 	-installsuffix "static" \
12:27:41 	-ldflags="-X k8s.io/minikube/pkg/drivers/kvm.version=v1.5.2 -X k8s.io/minikube/pkg/drivers/kvm.gitCommitID=cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a" \
12:27:41 	-tags "libvirt.1.3.1 without_lxc" \
12:27:41 	-o out/docker-machine-driver-kvm2 \
12:27:41 	k8s.io/minikube/cmd/drivers/kvm
12:27:43 which go-bindata || GO111MODULE=off GOBIN="/var/lib/jenkins/go/bin" go get github.com/jteeuwen/go-bindata/...
12:27:44 PATH="/var/lib/jenkins/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/var/lib/jenkins/go/bin" go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
12:27:44 gofmt -s -w pkg/minikube/assets/assets.go
12:27:45 which go-bindata || GO111MODULE=off GOBIN="/var/lib/jenkins/go/bin" go get github.com/jteeuwen/go-bindata/...
12:27:45 PATH="/var/lib/jenkins/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/usr/local/go/bin:/var/lib/jenkins/go/bin" go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
12:27:45 gofmt -s -w pkg/minikube/translate/translations.go
12:27:45 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make out/minikube-linux-amd64'
12:27:45 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make out/minikube-linux-arm64'
12:27:45 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make out/minikube-darwin-amd64'
12:27:45 docker run --rm -e GOCACHE=/app/.cache -e IN_DOCKER=1 --user 108:113 -w /app -v /var/lib/jenkins/go/src/k8s.io/minikube:/app -v /var/lib/jenkins/go:/go --init k8s.gcr.io/kube-cross:v1.12.12-1 /bin/bash -c '/usr/bin/make out/minikube-windows-amd64'
12:27:45 GOOS=linux CGO_ENABLED=0 go build -o out/gvisor-addon cmd/gvisor/gvisor.go
12:27:48 GOOS="linux" GOARCH="amd64" go build -tags "container_image_ostree_stub containers_image_openpgp go_getter_nos3 go_getter_nogcs" -ldflags="-X k8s.io/minikube/pkg/version.version=v1.5.2 -X k8s.io/minikube/pkg/version.isoVersion=v1.5.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a"" -a -o out/minikube-linux-amd64 k8s.io/minikube/cmd/minikube
12:27:49 GOOS="darwin" GOARCH="amd64" go build -tags "container_image_ostree_stub containers_image_openpgp go_getter_nos3 go_getter_nogcs" -ldflags="-X k8s.io/minikube/pkg/version.version=v1.5.2 -X k8s.io/minikube/pkg/version.isoVersion=v1.5.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a"" -a -o out/minikube-darwin-amd64 k8s.io/minikube/cmd/minikube
12:27:50 GOOS="linux" GOARCH="arm64" go build -tags "container_image_ostree_stub containers_image_openpgp go_getter_nos3 go_getter_nogcs" -ldflags="-X k8s.io/minikube/pkg/version.version=v1.5.2 -X k8s.io/minikube/pkg/version.isoVersion=v1.5.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a"" -a -o out/minikube-linux-arm64 k8s.io/minikube/cmd/minikube
12:27:50 GOOS="windows" GOARCH="amd64" go build -tags "container_image_ostree_stub containers_image_openpgp go_getter_nos3 go_getter_nogcs" -ldflags="-X k8s.io/minikube/pkg/version.version=v1.5.2 -X k8s.io/minikube/pkg/version.isoVersion=v1.5.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="cc6ffe81ae4cc54063a6c13e70fc84a41c6f013a"" -a -o out/minikube-windows-amd64 k8s.io/minikube/cmd/minikube
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long
12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long

Copy link
Member

@medyagh medyagh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there are failures on jenkins :

12:27:59 /build.sh: line 65: /usr/bin/dirname: Argument list too long

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented Nov 6, 2019

Actually I was more curious what /build.sh is, but thanks for the build log!

@afbjorklund
Copy link
Collaborator Author

Okay, I can reproduce this too. Seems like /build.sh is included in 'karalabe/xgo-1.12.x`.

            "Entrypoint": [
                "/build.sh"
            ],

https://github.com/karalabe/xgo/blob/master/docker/base/build.sh

When we no longer override that (with bash), then it goes into a loop with the parameters:

# Usage: build.sh <import path>
IMPORT_PATH=$1
  while [ "$IMPORT_PATH" != "." ]; do
    export GOPATH=$GOPATH:$GOPATH_ROOT/$IMPORT_PATH/Godeps/_workspace
    IMPORT_PATH=`dirname $IMPORT_PATH`
  done

Parameters being:
-c 'CC=o64-clang CXX=o64-clang++ /usr/bin/make out/docker-machine-driver-hyperkit'

The bash shell is not very good at playing init(1), let
tini handle this instead by doing `docker run --init`.

This makes it forward signals properly to e.g. make,
and also reaps processes for long-running containers.

However, we _need_ to override the entrypoint of the
karalabe/xgo image, since it'll self-destruct otherwise.

It (/build.sh) expects the command to be the import path
and cannot handle getting the bash command line to run.
@afbjorklund
Copy link
Collaborator Author

I don't think those Hyper-V and HyperKit errors have anything to do with this Docker change, and the failure to download kvm2 when running with virtualbox is also very strange (who asked for KVM ?).

++ out/e2e-linux-amd64 '-minikube-start-args=--vm-driver=virtualbox ' -expected-default-driver=kvm2 -test.timeout=70m -binary=out/minikube-linux-amd64
--- FAIL: TestDownloadOnly (17.02s)
    --- FAIL: TestDownloadOnly/group (16.98s)
        --- FAIL: TestDownloadOnly/group/ExpectedDefaultDriver (0.04s)
            a_serial_test.go:97: (dbg) Run:  out/minikube-linux-amd64 profile list --output json
            a_serial_test.go:115: got driver "virtualbox", expected "kvm2"

The change itself seems to be working OK here. Now starting docker-init (tini) as the init process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants