Files
benzheng daae1c14ab fix: copy synocli into builder image for default make target
The Makefile default build target includes bin/synocli, but the
Dockerfile builder stage never copies synocli/ into the build context,
so building the image fails with
"stat /go/src/synok8scsiplugin/synocli: directory not found".

Copy synocli/ so the in-image make behaves the same as in a full
checkout.
2026-07-29 14:21:55 +08:00

37 lines
978 B
Docker

# Copyright 2021 Synology Inc.
############## Build stage ##############
FROM golang:1.21.4-alpine as builder
LABEL stage=synobuilder
RUN apk add --no-cache alpine-sdk
WORKDIR /go/src/synok8scsiplugin
COPY go.mod go.sum ./
RUN go mod download
COPY Makefile .
ARG TARGETPLATFORM
COPY main.go .
COPY pkg ./pkg
COPY synocli ./synocli
RUN env GOARCH=$(echo "$TARGETPLATFORM" | cut -f2 -d/) \
GOARM=$(echo "$TARGETPLATFORM" | cut -f3 -d/ | cut -c2-) \
make
############## Final stage ##############
FROM alpine:latest
LABEL maintainers="Synology Authors" \
description="Synology CSI Plugin"
RUN apk add --no-cache e2fsprogs e2fsprogs-extra xfsprogs xfsprogs-extra blkid util-linux iproute2 bash btrfs-progs ca-certificates cifs-utils nfs-utils nvme-cli
# Create symbolic link for chroot.sh
WORKDIR /
# Copy and run CSI driver
COPY --from=builder /go/src/synok8scsiplugin/bin/synology-csi-driver synology-csi-driver
ENTRYPOINT ["/synology-csi-driver"]