diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..db3f25e --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/deployment.yaml b/deployment.yaml new file mode 100644 index 0000000..b7dd263 --- /dev/null +++ b/deployment.yaml @@ -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 diff --git a/front/src/app/app.component.ts b/front/src/app/app.component.ts index 315194e..83c1723 100644 --- a/front/src/app/app.component.ts +++ b/front/src/app/app.component.ts @@ -74,7 +74,7 @@ export class AppComponent { private clipboard: Clipboard, public dialog: MatDialog, ) { - this.downloadImage() + // this.downloadImage() } search(limit: number = 20, last: number = 0) { diff --git a/internal/handler/repo.go b/internal/handler/repo.go index 6e24af9..d42bc56 100644 --- a/internal/handler/repo.go +++ b/internal/handler/repo.go @@ -17,7 +17,6 @@ import ( "nf-repo/internal/opt" "nf-repo/internal/util/r" "nf-repo/internal/util/rerr" - "nf-repo/internal/util/tools" "strings" ) @@ -187,8 +186,7 @@ func ProxyDownloadImage(mh interfaces.ManifestHandler, bh interfaces.BlobHandler }) _ = c.Flush() - ctx := tools.TimeoutCtx(c.Request.Context()) - if des, err = puller.Get(ctx, tn); err != nil { + if des, err = puller.Get(c.Request.Context(), tn); err != nil { return r.Resp500(c, err.Error()) } diff --git a/internal/middleware/front/dist/front/browser/index.html b/internal/middleware/front/dist/front/browser/index.html index 22cc28f..0848a27 100644 --- a/internal/middleware/front/dist/front/browser/index.html +++ b/internal/middleware/front/dist/front/browser/index.html @@ -12,5 +12,5 @@