mirror of https://github.com/cloudreve/Cloudreve
				
				
				
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Docker
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Docker
		
	
	
# build frontend
 | 
						|
FROM node:lts-buster AS fe-builder
 | 
						|
 | 
						|
COPY ./assets /assets
 | 
						|
 | 
						|
WORKDIR /assets
 | 
						|
 | 
						|
# yarn repo connection is unstable, adjust the network timeout to 10 min.
 | 
						|
RUN set -ex \
 | 
						|
    && yarn install --network-timeout 600000 \
 | 
						|
    && yarn run build
 | 
						|
 | 
						|
# build backend
 | 
						|
FROM golang:1.15.1-alpine3.12 AS be-builder
 | 
						|
 | 
						|
ENV GO111MODULE on
 | 
						|
 | 
						|
COPY . /go/src/github.com/cloudreve/Cloudreve/v3
 | 
						|
COPY --from=fe-builder /assets/build/ /go/src/github.com/cloudreve/Cloudreve/v3/assets/build/
 | 
						|
 | 
						|
WORKDIR /go/src/github.com/cloudreve/Cloudreve/v3
 | 
						|
 | 
						|
RUN set -ex \
 | 
						|
    && apk upgrade \
 | 
						|
    && apk add gcc libc-dev git \
 | 
						|
    && export COMMIT_SHA=$(git rev-parse --short HEAD) \
 | 
						|
    && export VERSION=$(git describe --tags) \
 | 
						|
    && (cd && go get github.com/rakyll/statik) \
 | 
						|
    && statik -src=assets/build/ -include=*.html,*.js,*.json,*.css,*.png,*.svg,*.ico -f \
 | 
						|
    && go install -ldflags "-X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.BackendVersion=${VERSION}' \
 | 
						|
                            -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.LastCommit=${COMMIT_SHA}'\
 | 
						|
                            -w -s"
 | 
						|
 | 
						|
# build final image
 | 
						|
FROM alpine:3.12 AS dist
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
RUN apk upgrade \
 | 
						|
    && apk add bash tzdata \
 | 
						|
    && ln -s /cloudreve/cloudreve /usr/bin/cloudreve \
 | 
						|
    && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
 | 
						|
    && echo ${TZ} > /etc/timezone \
 | 
						|
    && 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"]
 |