optimize build speed, like cache and mirror

This commit is contained in:
Tao Chen
2024-11-01 01:32:45 +08:00
parent d21b5809c4
commit a6a6c3aefe

View File

@@ -12,17 +12,19 @@ WORKDIR /app
# Step 1: Copy the source code # Step 1: Copy the source code
COPY . . COPY . .
# use --mount=type=cache,target=/go/pkg/mod to cache the go mod
# Step 2: Download dependencies # Step 2: Download dependencies
RUN go mod tidy && go mod download RUN --mount=type=cache,target=/go/pkg/mod \
go mod tidy && go mod download && go install github.com/swaggo/swag/cmd/swag@latest
# Step 3: Run swag build script
# Step 3: Install swag and Run the build script RUN --mount=type=cache,target=/go/pkg/mod \
RUN go install github.com/swaggo/swag/cmd/swag@latest && \
swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin && \ swag init -g cmd/apimain.go --output docs/api --instanceName api --exclude http/controller/admin && \
swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api swag init -g cmd/apimain.go --output docs/admin --instanceName admin --exclude http/controller/api
# Build the Go application with CGO enabled and specified ldflags # Step 4: Build the Go application with CGO enabled and specified ldflags
RUN CGO_ENABLED=1 GOOS=linux go build -a \ RUN --mount=type=cache,target=/go/pkg/mod \
CGO_ENABLED=1 GOOS=linux go build -a \
-ldflags "-s -w --extldflags '-static -fpic'" \ -ldflags "-s -w --extldflags '-static -fpic'" \
-installsuffix cgo -o release/apimain cmd/apimain.go -installsuffix cgo -o release/apimain cmd/apimain.go
@@ -43,8 +45,13 @@ RUN if [ "$COUNTRY" = "CN" ] ; then \
# Clone the frontend repository # Clone the frontend repository
RUN git clone https://github.com/lejianwen/rustdesk-api-web . RUN git clone https://github.com/lejianwen/rustdesk-api-web .
# Install npm dependencies and build the frontend # Install required tools without caching index to minimize image size
RUN npm install && npm run build RUN if [ "$COUNTRY" = "CN" ] ; then \
echo "It is in China, updating NPM_CONFIG_REGISTRY"; \
export NPM_CONFIG_REGISTRY="https://mirrors.huaweicloud.com/repository/npm/"; \
fi && \
npm install && npm run build
# Stage 2: Final Image # Stage 2: Final Image
FROM alpine:latest FROM alpine:latest