feat: 优化重启

This commit is contained in:
DDSRem 2023-09-08 19:49:10 +08:00
parent 091df01b7c
commit ae3b73a73f
4 changed files with 59 additions and 2 deletions

View File

@ -48,6 +48,7 @@ RUN apt-get update \
busybox \ busybox \
dumb-init \ dumb-init \
jq \ jq \
haproxy \
&& \ && \
if [ "$(uname -m)" = "x86_64" ]; \ if [ "$(uname -m)" = "x86_64" ]; \
then ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1; \ then ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1; \
@ -82,5 +83,5 @@ RUN apt-get update \
/var/lib/apt/lists/* \ /var/lib/apt/lists/* \
/var/tmp/* /var/tmp/*
EXPOSE 3000 EXPOSE 3000
VOLUME ["/config", "/var/run/docker.sock"] VOLUME [ "/config" ]
ENTRYPOINT [ "/entrypoint" ] ENTRYPOINT [ "/entrypoint" ]

View File

@ -309,7 +309,7 @@ class SystemUtils:
""" """
try: try:
# 创建 Docker 客户端 # 创建 Docker 客户端
client = docker.from_env() client = docker.DockerClient(base_url='tcp://127.0.0.1:2375')
# 获取当前容器的 ID # 获取当前容器的 ID
container_id = open("/proc/self/cgroup", "r").read().split("/")[-1] container_id = open("/proc/self/cgroup", "r").read().split("/")[-1]
if not container_id: if not container_id:

View File

@ -26,6 +26,10 @@ chown moviepilot:moviepilot /etc/hosts /tmp
gosu moviepilot:moviepilot playwright install chromium gosu moviepilot:moviepilot playwright install chromium
# 启动前端nginx服务 # 启动前端nginx服务
nginx nginx
# 启动haproxy
if [ -f "/var/run/docker.sock" ]; then
haproxy -f /etc/haproxy/haproxy.cfg
fi
# 设置后端服务权限掩码 # 设置后端服务权限掩码
umask ${UMASK} umask ${UMASK}
# 启动后端服务 # 启动后端服务

52
haproxy.cfg Normal file
View File

@ -0,0 +1,52 @@
global
log stdout format raw daemon info
user root
group root
daemon
pidfile /run/haproxy.pid
maxconn 4000
# Turn on stats unix socket
server-state-file /var/lib/haproxy/server-state
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 10m
timeout server 10m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
# Allow seamless reloads
load-server-state-from-file global
# Use provided example error pages
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
backend dockerbackend
server dockersocket /var/run/docker.sock
frontend dockerfrontend
bind :2375
http-request allow
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/((stop)|(restart)|(kill)) }
http-request deny
default_backend dockerbackend