1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #30290 from vdemeester/carry-pr-27834

Carry #27834 — Do not require `.git` in the build context
This commit is contained in:
Sebastiaan van Stijn 2017-02-04 19:19:16 -08:00 committed by GitHub
commit 4af2555a35
5 changed files with 25 additions and 24 deletions

View file

@ -2,3 +2,4 @@ bundles
.gopath .gopath
vendor/pkg vendor/pkg
.go-pkg-cache .go-pkg-cache
.git

View file

@ -71,8 +71,9 @@
# #
# 4. Build the docker executable binaries by running one of the following: # 4. Build the docker executable binaries by running one of the following:
# #
# >> docker run --name binaries nativebuildimage hack\make.ps1 -Binary # >> $DOCKER_GITCOMMIT=(git rev-parse --short HEAD)
# >> docker run --name binaries -m 2GB nativebuildimage hack\make.ps1 -Binary (if using Hyper-V containers) # >> docker run --name binaries -e DOCKER_GITCOMMIT=$DOCKER_GITCOMMIT nativebuildimage hack\make.ps1 -Binary
# >> docker run --name binaries -e DOCKER_GITCOMMIT=$DOCKER_GITCOMMIT -m 2GB nativebuildimage hack\make.ps1 -Binary (if using Hyper-V containers)
# #
# #
# 5. Copy the binaries out of the container, replacing HostPath with an appropriate destination # 5. Copy the binaries out of the container, replacing HostPath with an appropriate destination
@ -98,19 +99,14 @@
# ----------------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------------
# The validation tests can either run in a container, or directly on the host. To run in a # The validation tests can only run directly on the host. This is because they calculate
# container, ensure you have created the nativebuildimage above. Then run one of the # information from the git repo, but the .git directory is not passed into the image as
# following from an (elevated) Windows PowerShell prompt: # it is excluded via .dockerignore. Run the following from a Windows PowerShell prompt
# # (elevation is not required): (Note Go must be installed to run these tests)
# >> docker run --rm nativebuildimage hack\make.ps1 -DCO -PkgImports -GoFormat
# >> docker run --rm -m 2GB nativebuildimage hack\make.ps1 -DCO -PkgImports -GoFormat (if using Hyper-V containers)
# To run the validation tests on the host, from the root of the repository, run the
# following from a Windows PowerShell prompt (elevation is not required): (Note Go
# must be installed to run these tests)
# #
# >> hack\make.ps1 -DCO -PkgImports -GoFormat # >> hack\make.ps1 -DCO -PkgImports -GoFormat
# ----------------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------------
@ -124,7 +120,7 @@
# ----------------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------------
# To run all tests and binary build, ensure you have created the nativebuildimage above. Then # To run unit tests and binary build, ensure you have created the nativebuildimage above. Then
# run one of the following from an (elevated) Windows PowerShell prompt: # run one of the following from an (elevated) Windows PowerShell prompt:
# #
# >> docker run nativebuildimage hack\make.ps1 -All # >> docker run nativebuildimage hack\make.ps1 -All

View file

@ -10,6 +10,9 @@ export DOCKER_INCREMENTAL_BINARY
DOCKER_OSARCH := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKER_ENGINE_OSARCH:-$$DOCKER_CLIENT_OSARCH}') DOCKER_OSARCH := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKER_ENGINE_OSARCH:-$$DOCKER_CLIENT_OSARCH}')
DOCKERFILE := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKERFILE}') DOCKERFILE := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKERFILE}')
DOCKER_GITCOMMIT := $(shell git rev-parse --short HEAD || echo unsupported)
export DOCKER_GITCOMMIT
# env vars passed through directly to Docker's build scripts # env vars passed through directly to Docker's build scripts
# to allow things like `make KEEPBUNDLE=1 binary` easily # to allow things like `make KEEPBUNDLE=1 binary` easily
# `project/PACKAGERS.md` have some limited documentation of some of these # `project/PACKAGERS.md` have some limited documentation of some of these
@ -49,7 +52,7 @@ DOCKER_MOUNT := $(if $(BIND_DIR),-v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/do
# This allows the test suite to be able to run without worrying about the underlying fs used by the container running the daemon (e.g. aufs-on-aufs), so long as the host running the container is running a supported fs. # This allows the test suite to be able to run without worrying about the underlying fs used by the container running the daemon (e.g. aufs-on-aufs), so long as the host running the container is running a supported fs.
# The volume will be cleaned up when the container is removed due to `--rm`. # The volume will be cleaned up when the container is removed due to `--rm`.
# Note that `BIND_DIR` will already be set to `bundles` if `DOCKER_HOST` is not set (see above BIND_DIR line), in such case this will do nothing since `DOCKER_MOUNT` will already be set. # Note that `BIND_DIR` will already be set to `bundles` if `DOCKER_HOST` is not set (see above BIND_DIR line), in such case this will do nothing since `DOCKER_MOUNT` will already be set.
DOCKER_MOUNT := $(if $(DOCKER_MOUNT),$(DOCKER_MOUNT),-v /go/src/github.com/docker/docker/bundles) DOCKER_MOUNT := $(if $(DOCKER_MOUNT),$(DOCKER_MOUNT),-v /go/src/github.com/docker/docker/bundles) -v $(CURDIR)/.git:/go/src/github.com/docker/docker/.git
# This allows to set the docker-dev container name # This allows to set the docker-dev container name
DOCKER_CONTAINER_NAME := $(if $(CONTAINER_NAME),--name $(CONTAINER_NAME),) DOCKER_CONTAINER_NAME := $(if $(CONTAINER_NAME),--name $(CONTAINER_NAME),)

View file

@ -21,7 +21,7 @@
"hack\make.ps1 -Client" to build just the client 64-bit binary "hack\make.ps1 -Client" to build just the client 64-bit binary
"hack\make.ps1 -TestUnit" to run unit tests "hack\make.ps1 -TestUnit" to run unit tests
"hack\make.ps1 -Binary -TestUnit" to build the binaries and run unit tests "hack\make.ps1 -Binary -TestUnit" to build the binaries and run unit tests
"hack\make.ps1 -All" to run everything this script knows about "hack\make.ps1 -All" to run everything this script knows about that can run in a container
.PARAMETER Client .PARAMETER Client
Builds the client binaries. Builds the client binaries.
@ -48,24 +48,23 @@
Adds a custom string to be appended to the commit ID (spaces are stripped). Adds a custom string to be appended to the commit ID (spaces are stripped).
.PARAMETER DCO .PARAMETER DCO
Runs the DCO (Developer Certificate Of Origin) test. Runs the DCO (Developer Certificate Of Origin) test (must be run outside a container).
.PARAMETER PkgImports .PARAMETER PkgImports
Runs the pkg\ directory imports test. Runs the pkg\ directory imports test (must be run outside a container).
.PARAMETER GoFormat .PARAMETER GoFormat
Runs the Go formatting test. Runs the Go formatting test (must be run outside a container).
.PARAMETER TestUnit .PARAMETER TestUnit
Runs unit tests. Runs unit tests.
.PARAMETER All .PARAMETER All
Runs everything this script knows about. Runs everything this script knows about that can run in a container.
TODO TODO
- Unify the head commit - Unify the head commit
- Sort out the GITCOMMIT environment variable in the absence of a .git (longer term)
- Add golint and other checks (swagger maybe?) - Add golint and other checks (swagger maybe?)
#> #>
@ -334,7 +333,9 @@ Try {
Push-Location $root Push-Location $root
# Handle the "-All" shortcut to turn on all things we can handle. # Handle the "-All" shortcut to turn on all things we can handle.
if ($All) { $Client=$True; $Daemon=$True; $DCO=$True; $PkgImports=$True; $GoFormat=$True; $TestUnit=$True } # Note we expressly only include the items which can run in a container - the validations tests cannot
# as they require the .git directory which is excluded from the image by .dockerignore
if ($All) { $Client=$True; $Daemon=$True; $TestUnit=$True }
# Handle the "-Binary" shortcut to build both client and daemon. # Handle the "-Binary" shortcut to build both client and daemon.
if ($Binary) { $Client = $True; $Daemon = $True } if ($Binary) { $Client = $True; $Daemon = $True }

View file

@ -70,7 +70,9 @@ DEFAULT_BUNDLES=(
VERSION=$(< ./VERSION) VERSION=$(< ./VERSION)
! BUILDTIME=$(date --rfc-3339 ns 2> /dev/null | sed -e 's/ /T/') ! BUILDTIME=$(date --rfc-3339 ns 2> /dev/null | sed -e 's/ /T/')
if command -v git &> /dev/null && [ -d .git ] && git rev-parse &> /dev/null; then if [ "$DOCKER_GITCOMMIT" ]; then
GITCOMMIT="$DOCKER_GITCOMMIT"
elif command -v git &> /dev/null && [ -d .git ] && git rev-parse &> /dev/null; then
GITCOMMIT=$(git rev-parse --short HEAD) GITCOMMIT=$(git rev-parse --short HEAD)
if [ -n "$(git status --porcelain --untracked-files=no)" ]; then if [ -n "$(git status --porcelain --untracked-files=no)" ]; then
GITCOMMIT="$GITCOMMIT-unsupported" GITCOMMIT="$GITCOMMIT-unsupported"
@ -83,8 +85,6 @@ if command -v git &> /dev/null && [ -d .git ] && git rev-parse &> /dev/null; the
git status --porcelain --untracked-files=no git status --porcelain --untracked-files=no
echo "#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
fi fi
elif [ "$DOCKER_GITCOMMIT" ]; then
GITCOMMIT="$DOCKER_GITCOMMIT"
else else
echo >&2 'error: .git directory missing and DOCKER_GITCOMMIT not specified' echo >&2 'error: .git directory missing and DOCKER_GITCOMMIT not specified'
echo >&2 ' Please either build with the .git directory accessible, or specify the' echo >&2 ' Please either build with the .git directory accessible, or specify the'