Move build-system to mutli-stage build-container

dev
Ruakij 4 months ago
parent 2287670f63
commit a3414c37dd

@ -12,11 +12,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM debian:bullseye
# ---- Build ----
FROM golang:1.23-alpine AS build
WORKDIR /build
# Copy sources
ADD . .
# Get dependencies
RUN make go-build
# Compile
RUN CGO_ENABLED=0 go build -a -o webdavplugin ./cmd/webdav
ARG binary=./bin/webdavplugin
COPY ${binary} /webdavplugin
RUN apt update && apt install -y davfs2
# ---- Release ----
FROM alpine AS release
# Install required packages
RUN apk add --no-cache davfs2
# Copy build-target
COPY --from=build /build/webdavplugin .
ENTRYPOINT ["/webdavplugin"]

@ -1,17 +0,0 @@
GIT_COMMIT = $(shell git rev-parse HEAD)
BUILD_DATE = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
PKG = github.com/sys-liqian/csi-driver-webdav
LDFLAGS = -X ${PKG}/pkg/webdav.driverVersion=${IMAGE_VERSION} -X ${PKG}/pkg/webdav.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/webdav.buildDate=${BUILD_DATE}
EXT_LDFLAGS = -s -w -extldflags "-static"
IMAGE_VERSION ?= v0.0.1
LOCAL_REPOSITORY ?= localhost:5000
.PHONY: go-build
go-build:
CGO_ENABLED=0 GOOS=linux GOARCH=$(ARCH) go build -a -ldflags "${LDFLAGS} ${EXT_LDFLAGS}" -o bin/webdavplugin ./cmd/webdav
.PHONY: docker-build
docker-build: go-build
docker build --network host -t $(LOCAL_REPOSITORY)/webdavplugin:$(IMAGE_VERSION) .
Loading…
Cancel
Save