@ -1,17 +1,17 @@
# build frontend
# build frontend
FROM node:lts- alpine3.12 AS fe-builder
FROM node:lts- buster AS fe-builder
COPY ./assets /assets
COPY ./assets /assets
WORKDIR /assets
WORKDIR /assets
# yarn repo connection is unstable, adjust the network timeout to 10 min.
RUN set -ex \
RUN set -ex \
&& apk upgrade \
&& yarn install --network-timeout 600000 \
&& yarn install \
&& yarn run build
&& yarn run build
# build backend
# build backend
FROM golang:1.15. 0 -alpine3.12 AS be-builder
FROM golang:1.15. 1 -alpine3.12 AS be-builder
ENV GO111MODULE on
ENV GO111MODULE on
@ -36,11 +36,30 @@ FROM alpine:3.12 AS dist
LABEL maintainer = "mritd <mritd@linux.com>"
LABEL maintainer = "mritd <mritd@linux.com>"
# we use the Asia/Shanghai timezone by default, you can be modified
# by `docker build --build-arg=TZ=Other_Timezone ...`
ARG TZ = "Asia/Shanghai"
ENV TZ ${ TZ }
COPY --from= be-builder /go/bin/cloudreve /cloudreve/cloudreve
COPY --from= be-builder /go/bin/cloudreve /cloudreve/cloudreve
RUN apk upgrade \
RUN apk upgrade \
&& apk add bash tzdata \
&& apk add bash tzdata \
&& ln -s /cloudreve/cloudreve /usr/bin/cloudreve \
&& ln -s /cloudreve/cloudreve /usr/bin/cloudreve \
&& ln -sf /usr/share/zoneinfo/${ TZ } /etc/localtime \
&& echo ${ TZ } > /etc/timezone \
&& rm -rf /var/cache/apk/*
&& rm -rf /var/cache/apk/*
# cloudreve use tcp 5212 port by default
EXPOSE 5212/tcp
# cloudreve stores all files(including executable file) in the `/cloudreve`
# directory by default; users should mount the configfile to the `/etc/cloudreve`
# directory by themselves for persistence considerations, and the data storage
# directory recommends using `/data` directory.
VOLUME /etc/cloudreve
VOLUME /data
ENTRYPOINT [ "cloudreve" ]
ENTRYPOINT [ "cloudreve" ]