Dockerfile 891 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # build stage
  2. FROM golang:1.17 AS builder
  3. WORKDIR /app
  4. COPY . .
  5. RUN go env -w GO111MODULE=on \
  6. && go env -w GOPROXY=https://goproxy.cn,direct \
  7. && make clean test build
  8. # build s3sync
  9. FROM golang:1.17 AS s3sync
  10. WORKDIR /src/
  11. RUN git clone --branch 2.34 https://github.com/larrabee/s3sync.git
  12. WORKDIR /src/s3sync
  13. ENV CGO_ENABLED 0
  14. COPY . ./
  15. RUN go mod vendor && \
  16. go build -o s3sync ./cli
  17. # final stage
  18. FROM debian:stable-slim
  19. LABEL name=backup-x
  20. LABEL url=https://github.com/jeessy2/backup-x
  21. RUN apt-get -y update \
  22. && apt-get install -y ca-certificates curl \
  23. && apt-get install -y postgresql-client \
  24. && apt-get install -y default-mysql-client
  25. WORKDIR /app
  26. VOLUME /app/backup-x-files
  27. ENV TZ=Asia/Shanghai
  28. COPY --from=builder /app/backup-x /app/backup-x
  29. COPY --from=s3sync /src/s3sync/s3sync /usr/local/bin/s3sync
  30. EXPOSE 9977
  31. ENTRYPOINT ["/app/backup-x"]