Dockerfile: use GO_VERSION build-arg for overriding Go version
This allows overriding the version of Go without making modifications in the
source code, which can be useful to test against multiple versions.
For example:
make GO_VERSION=1.13beta1 shell
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c6281bc438
)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
3bf3a1ae65
commit
c364e5d1ba
6 changed files with 13 additions and 6 deletions
|
@ -25,8 +25,9 @@
|
|||
#
|
||||
|
||||
ARG CROSS="false"
|
||||
ARG GO_VERSION=1.12.7
|
||||
|
||||
FROM golang:1.12.7 AS base
|
||||
FROM golang:${GO_VERSION} AS base
|
||||
ARG APT_MIRROR
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/${APT_MIRROR:-deb.debian.org}/g" /etc/apt/sources.list \
|
||||
&& sed -ri "s/(security).debian.org/${APT_MIRROR:-security.debian.org}/g" /etc/apt/sources.list
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
FROM golang:1.12.7-alpine as base
|
||||
ARG GO_VERSION=1.12.7
|
||||
|
||||
FROM golang:${GO_VERSION}-alpine AS base
|
||||
|
||||
RUN apk --no-cache add \
|
||||
bash \
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
|
||||
# This represents the bare minimum required to build and test Docker.
|
||||
|
||||
FROM golang:1.12.7
|
||||
ARG GO_VERSION=1.12.7
|
||||
|
||||
FROM golang:${GO_VERSION}
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
|
|
|
@ -165,10 +165,12 @@ FROM microsoft/windowsservercore
|
|||
# Use PowerShell as the default shell
|
||||
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||
|
||||
ARG GO_VERSION=1.12.7
|
||||
|
||||
# Environment variable notes:
|
||||
# - GO_VERSION must be consistent with 'Dockerfile' used by Linux.
|
||||
# - FROM_DOCKERFILE is used for detection of building within a container.
|
||||
ENV GO_VERSION=1.12.7 `
|
||||
ENV GO_VERSION=${GO_VERSION} `
|
||||
GIT_VERSION=2.11.1 `
|
||||
GOPATH=C:\go `
|
||||
FROM_DOCKERFILE=1
|
||||
|
|
2
Makefile
2
Makefile
|
@ -150,7 +150,7 @@ build: DOCKER_BUILD_ARGS += --build-arg=CROSS=$(DOCKER_CROSS)
|
|||
build: DOCKER_BUILDKIT ?= 1
|
||||
build: bundles
|
||||
$(warning The docker client CLI has moved to github.com/docker/cli. For a dev-test cycle involving the CLI, run:${\n} DOCKER_CLI_PATH=/host/path/to/cli/binary make shell ${\n} then change the cli and compile into a binary at the same location.${\n})
|
||||
DOCKER_BUILDKIT="${DOCKER_BUILDKIT}" docker build ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} ${DOCKER_BUILD_OPTS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
|
||||
DOCKER_BUILDKIT="${DOCKER_BUILDKIT}" docker build --build-arg=GO_VERSION ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} ${DOCKER_BUILD_OPTS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
|
||||
|
||||
bundles:
|
||||
mkdir bundles
|
||||
|
|
|
@ -453,7 +453,7 @@ Try {
|
|||
Write-Host -ForegroundColor Cyan "`n`nINFO: Building the image from Dockerfile.windows at $(Get-Date)..."
|
||||
Write-Host
|
||||
$ErrorActionPreference = "SilentlyContinue"
|
||||
$Duration=$(Measure-Command { docker build -t docker -f Dockerfile.windows . | Out-Host })
|
||||
$Duration=$(Measure-Command { docker build --build-arg=GO_VERSION -t docker -f Dockerfile.windows . | Out-Host })
|
||||
$ErrorActionPreference = "Stop"
|
||||
if (-not($LastExitCode -eq 0)) {
|
||||
Throw "ERROR: Failed to build image from Dockerfile.windows"
|
||||
|
|
Loading…
Reference in a new issue