fix: default max body size 1Gi

This commit is contained in:
loveuer 2024-06-14 17:39:00 +08:00
parent 105d26efe4
commit aac6c67a5f
8 changed files with 148 additions and 15 deletions

28
Dockerfile Normal file
View File

@ -0,0 +1,28 @@
FROM repo.me/my/golang:latest AS builder
ENV GO111MODULE on
ENV CGO_ENABLED 0
ENV GOOS linux
ENV GOPROXY https://goproxy.io
WORKDIR /build
COPY . .
RUN go mod download
RUN go build -ldflags '-s -w' -o repo_app .
FROM repository.umisen.com/external/alpine:latest
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && apk add curl
ENV TZ Asia/Shanghai
WORKDIR /app
RUN mkdir -p /data
COPY --from=builder /build/repo_app /app/repo_app
COPY etc /app/etc
CMD ["/app/repo_app", "-crt", "/app/etc/repo.me.crt", "-key", "/app/etc/repo.me.key", "-data", "/data"]

107
deployment.yaml Normal file
View File

@ -0,0 +1,107 @@
apiVersion: v1
kind: Namespace
metadata:
name: repo-me
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: repo-me
name: repo-me
spec:
replicas: 1
selector:
matchLabels:
app: repo-me
template:
metadata:
labels:
app: repo-me
spec:
containers:
- name: repo-me
image: repository.umisen.com/build/repo.me:v240613
imagePullPolicy: IfNotPresent
command: ["/app/repo_app", "-crt", "/app/etc/repo.me.crt", "-key", "/app/etc/repo.me.key", "-data", "/data"]
ports:
- containerPort: 443
resources:
limits:
memory: 50Mi
cpu: 1
volumeMounts:
- mountPath: /data
name: repo-me-data
volumes:
- name: repo-me-data
persistentVolumeClaim:
claimName: repo-me-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: repo-me
name: repo-me-pvc
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "repo-me-storage"
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
namespace: repo-me
name: repo-me-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /data/repo-me
type: ""
storageClassName: "repo-me-storage"
volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
namespace: repo-me
name: repo-me-svc
spec:
selector:
app: repo-me
type: ClusterIP
ports:
- name: repo-me-https
port: 443
targetPort: 443
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: repo-me-ingress
namespace: repo-me
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- host: "repo.me"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: repo-me
port:
number: 443

View File

@ -74,7 +74,7 @@ export class AppComponent {
private clipboard: Clipboard, private clipboard: Clipboard,
public dialog: MatDialog, public dialog: MatDialog,
) { ) {
this.downloadImage() // this.downloadImage()
} }
search(limit: number = 20, last: number = 0) { search(limit: number = 20, last: number = 0) {

View File

@ -17,7 +17,6 @@ import (
"nf-repo/internal/opt" "nf-repo/internal/opt"
"nf-repo/internal/util/r" "nf-repo/internal/util/r"
"nf-repo/internal/util/rerr" "nf-repo/internal/util/rerr"
"nf-repo/internal/util/tools"
"strings" "strings"
) )
@ -187,8 +186,7 @@ func ProxyDownloadImage(mh interfaces.ManifestHandler, bh interfaces.BlobHandler
}) })
_ = c.Flush() _ = c.Flush()
ctx := tools.TimeoutCtx(c.Request.Context()) if des, err = puller.Get(c.Request.Context(), tn); err != nil {
if des, err = puller.Get(ctx, tn); err != nil {
return r.Resp500(c, err.Error()) return r.Resp500(c, err.Error())
} }

View File

@ -12,5 +12,5 @@
</style><link rel="stylesheet" href="styles-7HNLK6WW.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-7HNLK6WW.css"></noscript></head> </style><link rel="stylesheet" href="styles-7HNLK6WW.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-7HNLK6WW.css"></noscript></head>
<body class="mat-typography"> <body class="mat-typography">
<app-root></app-root> <app-root></app-root>
<script src="polyfills-7NI4OVGA.js" type="module"></script><script src="main-V5ZNJQTZ.js" type="module"></script></body> <script src="polyfills-7NI4OVGA.js" type="module"></script><script src="main-GOH3XQ2N.js" type="module"></script></body>
</html> </html>

View File

@ -3,7 +3,7 @@ package opt
import "errors" import "errors"
const ( const (
DefaultMaxSize = 32 * 1024 * 1024 DefaultMaxSize = 1024 * 1024 * 1024
ReferrersEnabled = true ReferrersEnabled = true
BaseAddress = "repo.me" BaseAddress = "repo.me"

16
main.go
View File

@ -46,14 +46,14 @@ func init() {
tlsCfg = &tls.Config{Certificates: []tls.Certificate{crt}} tlsCfg = &tls.Config{Certificates: []tls.Certificate{crt}}
mh = manifests.NewManifestDBHandler(dbs.Must(dbs.NewSqliteTX(path.Join(dataPath, "data.sqlite")))) mh = manifests.NewManifestDBHandler(dbs.Must(dbs.NewSqliteTX(path.Join(dataPath, "data.sqlite"))))
//bh = blobs.NewLocalBlobHandler(path.Join(dataPath, "layers")) bh = blobs.NewLocalBlobHandler(path.Join(dataPath, "layers"))
bh = blobs.NewS3BlobHandler( //bh = blobs.NewS3BlobHandler(
context.TODO(), // context.TODO(),
"http://10.230.200.74:9000", // "http://10.230.200.74:9000",
"xWcwG0zcdR3iDXBa", // "xWcwG0zcdR3iDXBa",
"NavjSle5qQjE2rjz81hEwZW3S2fUVa66", // "NavjSle5qQjE2rjz81hEwZW3S2fUVa66",
"repo.me", // "repo.me",
) //)
uh = uploads.NewLocalUploader(path.Join(dataPath, "uploads")) uh = uploads.NewLocalUploader(path.Join(dataPath, "uploads"))
} }