FROM golang:alpine AS builder ARG CGO_ENABLED=0 WORKDIR /go/src/github.com/rclone/rclone/ RUN echo "**** Set Go Environment Variables ****" && \ go env -w GOCACHE=/root/.cache/go-build RUN echo "**** Install Dependencies ****" && \ apk add --no-cache \ make \ bash \ gawk \ git COPY go.mod .COPY go.sum . RUN echo "**** Download Go Dependencies ****" && \ go mod download -x RUN echo "**** Verify Go Dependencies ****" && \ go mod verify COPY . . RUN --mount=type=cache,target=/root/.cache/go-build,sharing=locked \ echo "**** Build Binary ****" && \ make RUN echo "**** Print Version Binary ****" && \ ./rclone version # Begin final imageFROM alpine:latest ARG RCLONE_UID=1009ARG RCLONE_GID=1009 RUN echo "**** Install Dependencies ****" && \ apk add --no-cache \ ca-certificates \ fuse3 \ tzdata && \ echo "Enable user_allow_other in fuse" && \ echo "user_allow_other" >> /etc/fuse.conf COPY --from=builder /go/src/github.com/rclone/rclone/rclone /usr/local/bin/ RUN addgroup -g "${RCLONE_GID}" rclone && adduser -u "${RCLONE_UID}" -Ds /bin/sh -G rclone rclone ENTRYPOINT [ "rclone" ] WORKDIR /dataENV XDG_CONFIG_HOME=/config
FROM golang:alpine AS builder
ARG CGO_ENABLED=0
WORKDIR /go/src/github.com/rclone/rclone/
RUN echo "**** Set Go Environment Variables ****" && \
go env -w GOCACHE=/root/.cache/go-build
RUN echo "**** Install Dependencies ****" && \
apk add --no-cache \
make \
bash \
gawk \
git
COPY go.mod .
COPY go.sum .
RUN echo "**** Download Go Dependencies ****" && \
go mod download -x
RUN echo "**** Verify Go Dependencies ****" && \
go mod verify
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build,sharing=locked \
echo "**** Build Binary ****" && \
make
RUN echo "**** Print Version Binary ****" && \
./rclone version
# Begin final image
FROM alpine:latest
ARG RCLONE_UID=1009
ARG RCLONE_GID=1009
RUN echo "**** Install Dependencies ****" && \
apk add --no-cache \
ca-certificates \
fuse3 \
tzdata && \
echo "Enable user_allow_other in fuse" && \
echo "user_allow_other" >> /etc/fuse.conf
COPY --from=builder /go/src/github.com/rclone/rclone/rclone /usr/local/bin/
RUN addgroup -g "${RCLONE_GID}" rclone && adduser -u "${RCLONE_UID}" -Ds /bin/sh -G rclone rclone
ENTRYPOINT [ "rclone" ]
WORKDIR /data
ENV XDG_CONFIG_HOME=/config