[supervisord] nodaemon=true logfile=/var/log/supervisor/supervisord.log pidfile=/run/supervisord.pid childlogdir=/var/log/supervisor [program:nginx] command=nginx -g "daemon off;" autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:searxng] # 配置优先级:data 卷里的 /app/data/searxng-settings.yml 存在则用它, # 否则用镜像内置的 /etc/searxng/settings.yml。 # # 这样代理(outgoing.proxies)这类**部署相关**配置就落在数据卷里, # 重建容器不会再丢;同时也免去“改配置必须重建镜像”。 # 注意:不能用 supervisord 的 environment= 做条件判断,它不支持逻辑, # 所以这里用 sh -c 包一层(/bin/sh 是 dash,语法保持最小)。 command=/bin/sh -c 'if [ -f /app/data/searxng-settings.yml ]; then export SEARXNG_SETTINGS_PATH=/app/data/searxng-settings.yml; fi; exec /app/searxng-venv/bin/python -m searx.webapp' # 不设 environment:继承 docker run -e SEARXNG_BASE_URL 等父进程环境变量 autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:history-server] command=/usr/local/bin/history-server autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:admin-server] command=/usr/local/bin/admin-server autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0