feat: as docker mirror registry

feat: add global proxy config
upgrade: upgrade front(angular) to 19
chore: deployment staff
  1. Dockerfile: build frontend, backend, and run in nginx base image
This commit is contained in:
loveuer
2024-12-23 00:07:44 -08:00
parent aac6c67a5f
commit 6e866b83e4
57 changed files with 22226 additions and 7343 deletions

107
deployment/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:"$TAG"
imagePullPolicy: IfNotPresent
command: ["some args"]
ports:
- containerPort: 80
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

8
deployment/endpoint.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
# start nginx
nginx -c /etc/nginx/nginx.conf
echo "args = $@"
/app/server "$@"

53
deployment/nginx.conf Normal file
View File

@ -0,0 +1,53 @@
user root;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
tcp_nopush on;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
# log_format custom '[$time_local] [$remote_addr] [$status] [$request_time] [$request_uri]';
# access_log /var/log/nginx/access.log custom;
access_log off;
gzip on;
server {
client_max_body_size 5m;
location /_api {
proxy_pass http://127.0.0.1:8383;
# Add headers to support SSE
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Disable buffering for SSE
proxy_buffering off;
proxy_cache off;
proxy_ignore_client_abort on;
}
location / {
root /app/dist/front/browser;
index index.html;
try_files $uri $uri/ /index.html;
}
}
}