Closed hlovingness closed 6 months ago
{ "accounts_urls": [ { "mark": "账号标识,可以设置为空字符串", "url": "账号主页链接", "tab": "账号主页类型", "earliest": "作品最早发布日期", "latest": "作品最晚发布日期" } ], "mix_urls": [ { "mark": "合集标识,可以设置为空字符串", "url": "合集链接或者作品链接" } ], "owner_url": { "mark": "账号标识,可以设置为空字符串", "url": "账号主页链接" }, "root": "", "folder_name": "Download", "name_format": "create_time type nickname desc", "date_format": "%Y-%m-%d %H:%M:%S", "split": "-", "folder_mode": false, "music": false, "storage_format": "", "cookie": "", "dynamic_cover": false, "original_cover": false, "proxies": "", "download": true, "max_size": 0, "chunk": 1048576, "max_retry": 5, "max_pages": 0, "default_mode": "8", "ffmpeg": "" }
default_mode: "8"
FROM python:3.12 WORKDIR app COPY ./src /app/src COPY ./static /app/static COPY ./templates /app/templates COPY ./Dockerfile /app/Dockerfile COPY ./main.py /app/main.py COPY ./requirements.txt /app/requirements.txt # COPY ./settings.json /app/settings.json 从容易映射进去 RUN sed -i 's@^.* if self.console.input(.*$@@' main.py &&\ sed -i 's@^.* "是否已仔细阅读上述免责声明(YES/NO): ").upper() != "YES":.*$@@' main.py &&\ sed -i 's@^.* return False.*$@@' main.py &&\ echo '/bin/bash' >> /entrypoint.sh &&\ echo 'cd /app' >> /entrypoint.sh &&\ echo 'echo 5 | /usr/local/bin/python main.py' >> /entrypoint.sh &&\ chmod +x /entrypoint.sh &&\ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
# Deployment apiVersion: apps/v1 kind: Deployment metadata: name: tiktok namespace: tool labels: app: tiktok spec: replicas: 1 selector: matchLabels: app: tiktok template: metadata: labels: app: tiktok spec: volumes: - name: tiktok persistentVolumeClaim: claimName: tiktok containers: - name: tiktok image: 'tiktok:v5.3' imagePullPolicy: IfNotPresent ports: - name: tiktok protocol: TCP containerPort: 5000 volumeMounts: - name: tiktok mountPath: /app/Download resources: limits: cpu: 200m memory: 512Mi requests: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: tiktok namespace: tool annotations: traefik.ingress.kubernetes.io/service.sticky.cookie: "true" traefik.ingress.kubernetes.io/service.sticky.cookie.name: "sticky" traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true" spec: ports: - name: http protocol: TCP port: 5000 selector: app: tiktok
# PersistentVolume apiVersion: v1 kind: PersistentVolume metadata: name: tiktok namespace: tool spec: storageClassName: "nfs-storage" accessModes: - ReadWriteMany capacity: storage: 10Gi persistentVolumeReclaimPolicy: Retain nfs: path: /data/tiktok server: 10.233.1.10 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tiktok namespace: tool spec: storageClassName: "nfs-storage" accessModes: - ReadWriteMany volumeName: "tiktok" resources: requests: storage: 10Gi
# IngressRoute apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: tiktok namespace: tool spec: entryPoints: - websecure routes: - match: Host(`tiktok.domain.com`) && PathPrefix(`/`) kind: Rule services: - name: tiktok port: 5000 tls: certResolver: letsencrypt
配置文件
default_mode: "8"
Dockerfile
k8s配置
附图