Files
synology-csi/Dockerfile
Sami Haahtinen 78e7a08c0e Implement a tool executor
The tool executor is capable of running given tools in chroot either by automatically locating the tools in path using the `env` command or directly if the path is known.

This removes the need for the shell script to wrap commands and reduces number of needed external binaries on the node.
2025-05-31 11:46:33 +01:00

36 lines
946 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
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
# 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"]