diff --git a/Dockerfile b/Dockerfile index 36c5462..0766010 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,9 +14,12 @@ RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat /web/default/VERSION) n DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat /web/air/VERSION) npm run build --prefix /web/air & \ wait -FROM golang:alpine AS builder2 +FROM golang AS builder2 -RUN apk add --no-cache g++ gcc musl-dev libc-dev sqlite-dev build-base +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + sqlite3 libsqlite3-dev \ + && rm -rf /var/lib/apt/lists/* ENV GO111MODULE=on \ CGO_ENABLED=1 \ @@ -25,20 +28,26 @@ ENV GO111MODULE=on \ CGO_LDFLAGS="-L/usr/lib" WORKDIR /build + ADD go.mod go.sum ./ RUN go mod download + COPY . . COPY --from=builder /web/build ./web/build -RUN go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o one-api -FROM alpine +RUN go build -trimpath \ + -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(cat VERSION)' -extldflags '-static'" \ + -o one-api -RUN apk update \ - && apk upgrade \ - && apk add --no-cache ca-certificates tzdata \ - && update-ca-certificates 2>/dev/null || true +# Final runtime image +FROM ubuntu:minimal + +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates tzdata bash \ + && rm -rf /var/lib/apt/lists/* COPY --from=builder2 /build/one-api / + EXPOSE 3000 WORKDIR /data ENTRYPOINT ["/one-api"] \ No newline at end of file