| |
| FROM node:18.19.0-alpine as frontend-builder |
|
|
| WORKDIR /app |
|
|
| |
| COPY chat-api-main.zip . |
| RUN apk add --no-cache unzip && \ |
| unzip chat-api-main.zip && \ |
| rm chat-api-main.zip |
|
|
| |
| WORKDIR /app/chat-api-main/web-admin |
| RUN npm install && \ |
| npm run build |
|
|
| |
| WORKDIR /app/chat-api-main/web-user |
| RUN npm install && \ |
| npm run build |
|
|
| |
| FROM golang:latest AS backend-builder |
|
|
| |
| ENV GO111MODULE=on |
| ENV GOPROXY=https://goproxy.cn,direct |
| ENV GOSUMDB=off |
|
|
| |
| WORKDIR /go/src/one-api |
|
|
| |
| COPY chat-api-main.zip . |
| RUN apt-get update && apt-get install -y unzip && \ |
| unzip chat-api-main.zip && \ |
| mv chat-api-main/* . && \ |
| rm -rf chat-api-main chat-api-main.zip |
|
|
| |
| COPY --from=frontend-builder /app/chat-api-main/web-admin/build ./web-admin/build |
| COPY --from=frontend-builder /app/chat-api-main/web-user/build ./web-user/build |
|
|
| |
| RUN go mod tidy && \ |
| go mod download |
|
|
| |
| RUN go build -ldflags "-s -w -X 'one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o bin/chat-api |
|
|
| |
| FROM nginx:alpine |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| RUN mkdir -p /data/logs && \ |
| mkdir -p /logs && \ |
| chmod -R 777 /data && \ |
| chmod -R 777 /logs |
|
|
| |
| COPY nginx.conf /etc/nginx/nginx.conf |
|
|
| |
| COPY --from=backend-builder /go/src/one-api/bin/chat-api /chat-api |
|
|
| |
| COPY start.sh /start.sh |
| RUN chmod +x /start.sh |
|
|
| CMD ["/start.sh"] |
|
|