一. 下载捐赠版源码修改dockerFile
PS: dockerFile当前将key.bin也就是捐赠版密钥添加到了镜像中,实际上可以不加,此时和应该将
dockerFile中的 --- "ADD key_20230114.bin ./" 此行删除,并在随后的 `docker-compose.yml` 中加入key的映射
FROM golang:1.18-alpine as cloudreve_builder
# install dependencies and build tools
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache wget curl git yarn build-base gcc abuild binutils binutils-doc gcc-doc zip \
&& yarn config set registry https://mirrors.cloud.tencent.com/npm/ \
&& yarn config get registry \
&& yarn config set "strict-ssl" false -g \
&& go env -w GOPROXY=https://goproxy.cn
WORKDIR /cloudreve_builder
COPY . .
# build frontend
WORKDIR /cloudreve_builder/assets
# Disable sourcemap in production envitonment
ENV GENERATE_SOURCEMAP false
# Disable new OpenSSL to prevent 0308010C:digital envelope routines::unsupported
ENV NODE_OPTIONS --openssl-legacy-provider
RUN yarn install --network-timeout 600000
RUN yarn run build
# build backend
WORKDIR /cloudreve_builder
RUN zip -r - assets/build >assets.zip \
&& go build -a -o cloudreve
# build final image
FROM alpine:latest
WORKDIR /cloudreve
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update && apk add --no-cache tzdata
# we using the `Asia/Shanghai` timezone by default, you can do modification at your will
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
COPY --from=cloudreve_builder /cloudreve_builder/cloudreve ./
ADD key_20230114.bin ./
# prepare permissions and aria2 dir
RUN chmod +x ./cloudreve \
&& ls -l ./ \
&& mkdir -p /data/aria2 \
&& chmod -R 766 /data/aria2
EXPOSE 5212
VOLUME ["/cloudreve/uploads", "/cloudreve/avatar", "/data"]
ENTRYPOINT ["./cloudreve"]
大约 19 分钟