35 lines
817 B
Docker
35 lines
817 B
Docker
FROM golang:1.21-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apk add --no-cache git
|
|
|
|
COPY main.go ./
|
|
COPY static/ ./static/
|
|
|
|
RUN echo 'module file-manager' > go.mod && \
|
|
echo 'go 1.21' >> go.mod && \
|
|
echo '' >> go.mod && \
|
|
echo 'require (' >> go.mod && \
|
|
echo ' github.com/fsnotify/fsnotify v1.7.0' >> go.mod && \
|
|
echo ' github.com/gin-gonic/gin v1.9.1' >> go.mod && \
|
|
echo ')' >> go.mod && \
|
|
go mod tidy && \
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o file-manager main.go
|
|
|
|
FROM alpine:latest
|
|
|
|
RUN apk --no-cache add ca-certificates tzdata
|
|
|
|
WORKDIR /data
|
|
|
|
COPY --from=builder /app/file-manager /usr/local/bin/
|
|
COPY --from=builder /app/static/ /var/www/static/
|
|
|
|
EXPOSE 8080
|
|
|
|
ENV PORT=8080
|
|
ENV ROOT=/data
|
|
|
|
ENTRYPOINT ["file-manager", "-port", "8080", "-root", "/data"]
|