mirror of
https://github.com/rclone/rclone.git
synced 2026-10-10 06:55:45 -04:00
The Docker image had no /etc/mime.types, so MIME types came only from Go's built-in table plus rclone's small extra list, and many extensions uploaded as application/octet-stream. This installs Alpine's mailcap package to fix the problem.
58 lines
1.2 KiB
Docker
58 lines
1.2 KiB
Docker
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 \
|
|
mailcap \
|
|
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
|