You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-07-03 00:58:13 +02:00
fix docker build gitlab image
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
FROM golang:1.12.6-alpine3.9 AS build_base
|
FROM golang:1.12.6-alpine3.9 AS build_base_golang
|
||||||
|
|
||||||
LABEL maintainer="lee@geeksinthewoods.com"
|
LABEL maintainer="lee@geeksinthewoods.com"
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ COPY go.mod .
|
|||||||
COPY go.sum .
|
COPY go.sum .
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
FROM build_base AS builder
|
FROM build_base_golang AS builder
|
||||||
|
|
||||||
# Copy shared packages.
|
# Copy shared packages.
|
||||||
COPY internal ./internal
|
COPY internal ./internal
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM golang:1.12.6-alpine3.9 AS build_base
|
FROM golang:1.12.6-alpine3.9 AS build_base_golang
|
||||||
|
|
||||||
LABEL maintainer="lee@geeksinthewoods.com"
|
LABEL maintainer="lee@geeksinthewoods.com"
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ COPY go.mod .
|
|||||||
COPY go.sum .
|
COPY go.sum .
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
FROM build_base AS builder
|
FROM build_base_golang AS builder
|
||||||
|
|
||||||
# Copy shared packages.
|
# Copy shared packages.
|
||||||
COPY internal ./internal
|
COPY internal ./internal
|
||||||
|
@ -249,19 +249,25 @@ func ServiceBuild(log *log.Logger, req *serviceBuildRequest) error {
|
|||||||
log.Printf("\t\tFound build stage %s for caching.\n", buildStageName)
|
log.Printf("\t\tFound build stage %s for caching.\n", buildStageName)
|
||||||
|
|
||||||
// Generate a checksum for the lines associated with the build stage.
|
// Generate a checksum for the lines associated with the build stage.
|
||||||
stageChecksum := fmt.Sprintf("%x", md5.Sum([]byte(strings.Join(stageLines, "\n"))))
|
buildBaseHashPts := []string{
|
||||||
|
fmt.Sprintf("%x", md5.Sum([]byte(strings.Join(stageLines, "\n")))),
|
||||||
|
}
|
||||||
|
|
||||||
// Making the assumption that the first stage always imports go.sum. Compute a checksum for the file.
|
switch buildStageName {
|
||||||
|
case "build_base_golang":
|
||||||
|
// Compute the checksum for the go.mod file.
|
||||||
goSumPath := filepath.Join(req.ProjectRoot, "go.sum")
|
goSumPath := filepath.Join(req.ProjectRoot, "go.sum")
|
||||||
goSumDat, err := ioutil.ReadFile(goSumPath)
|
goSumDat, err := ioutil.ReadFile(goSumPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "Failed parse relative path for %s from %s", req.DockerFile, req.ProjectRoot)
|
return errors.Wrapf(err, "Failed parse relative path for %s from %s", req.DockerFile, req.ProjectRoot)
|
||||||
}
|
}
|
||||||
goModChecksum := fmt.Sprintf("%x", md5.Sum(goSumDat))
|
buildBaseHashPts = append(buildBaseHashPts, fmt.Sprintf("%x", md5.Sum(goSumDat)))
|
||||||
|
}
|
||||||
|
|
||||||
// Combine both checksums used to tag the target build stage.
|
// Combine all the checksums to be used to tag the target build stage.
|
||||||
buildBaseHash := fmt.Sprintf("%x", md5.Sum([]byte(stageChecksum+goModChecksum)))
|
buildBaseHash := fmt.Sprintf("%x", md5.Sum([]byte(strings.Join(buildBaseHashPts, "|"))))
|
||||||
|
|
||||||
|
// New stage image tag.
|
||||||
buildBaseImageTag = buildStageName + "-" + buildBaseHash[0:8]
|
buildBaseImageTag = buildStageName + "-" + buildBaseHash[0:8]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +285,7 @@ func ServiceBuild(log *log.Logger, req *serviceBuildRequest) error {
|
|||||||
"-p", os.Getenv("CI_REGISTRY_PASSWORD"),
|
"-p", os.Getenv("CI_REGISTRY_PASSWORD"),
|
||||||
ciReg})
|
ciReg})
|
||||||
|
|
||||||
buildBaseImage = ciReg + "/" + buildBaseImageTag
|
buildBaseImage = os.Getenv("CI_REGISTRY_IMAGE") + ":" + buildBaseImageTag
|
||||||
pushTargetImg = true
|
pushTargetImg = true
|
||||||
} else {
|
} else {
|
||||||
buildBaseImageTag = req.ProjectName + ":" + req.Env + "-" +req.ServiceName + "-" + buildBaseImageTag
|
buildBaseImageTag = req.ProjectName + ":" + req.Env + "-" +req.ServiceName + "-" + buildBaseImageTag
|
||||||
|
Reference in New Issue
Block a user