尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何使用 supervisord 管理 Appsmith Docker 容器内的后端与 Caddy 进程
如何使用 supervisord 管理 Appsmith Docker 容器内的后端与 Caddy 进程【免费下载链接】appsmithPlatform to build admin panels, internal tools, and dashboards. Integrates with 25 databases and any API.项目地址: https://gitcode.com/GitHub_Trending/ap/appsmithAppsmith 的单容器 Docker 镜像把 Appsmith 后端Java server、Caddy、MongoDB、Redis、PostgreSQL 等多个进程放在同一个容器内运行这些进程由 supervisord 统一启动和管理。当你需要重启后端、查看某个进程为什么起不来、或者确认各组件当前状态时操作入口不是docker本身而是容器内的 supervisord通过supervisorctl命令行或通过容器暴露的 Supervisord Web UIhttp://localhost/supervisor/。本文给出在这条部署形态下查看状态、查看日志、重启 backend 和 editorCaddy进程的完整操作路径。适用前提你使用appsmith/appsmith-ce镜像自建实例且宿主机已安装docker和docker-compose可用docker --version与docker-compose --version验证。准备按文档部署好单容器实例所有 supervisord 操作都在安装目录含docker-compose.yml的目录下执行。按 deploy/docker/README.md 的 Self Host 部分准备安装目录docker-compose.yml内容如下version: 3 services: appsmith: image: appsmith/appsmith-ce container_name: appsmith-ce ports: - 80:80 - 443:443 volumes: - ./stacks:/appsmith-stacks restart: unless-stopped然后启动并确认容器在运行docker-compose up -d docker ps文档示例输出容器正常时应显示Up状态及 80/443 端口映射$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3b8f2c9638d0 appsmith/appsmith /opt/appsmith/entrypoint.sh 17 minutes ago Up 17 minutes 0.0.0.0:80-80/tcp, 0.0.0.0:443-443/tcp appsmith首次启动可能需要几分钟以下载镜像并初始化应用。启动完成后 Appsmith 可通过http://localhost访问。容器内有哪些进程由 supervisord 管理[program:*]段定义在 deploy/docker/fs/opt/appsmith/templates/supervisord/ 模板目录中容器启动时由 entrypoint.sh 的configure_supervisord()复制生效application_process/下的backend.conf、editor.conf、mcp.conf、rts.conf无条件复制mongodb.conf、redis.conf、postgres.conf仅在对应服务使用本地内嵌实例时复制。各进程定义的共同点autostarttrue、autorestarttrue、startretries3并带priority决定启动顺序数字越小先启动。程序名启动命令priority说明redisredis-server %(ENV_TMP)s/redis.conf5仅当 Redis 指向 localhost 时启用mongodbmongod --port 27017 --dbpath . --replSet mr1 ...10仅当 MongoDB 为内嵌本地实例时启用rts/opt/appsmith/run-rts.sh15mcp/opt/appsmith/run-mcp.sh16startsecs5崩溃循环会进入 FATAL 而停止backend/opt/appsmith/run-with-env.sh /opt/appsmith/run-java.sh20Appsmith Java 后端editor/opt/appsmith/run-with-env.sh /opt/appsmith/run-caddy.sh25Caddy 反向代理程序名为editor需要注意容器内 Caddy 的 supervisord 程序名是editor对 Caddy 操作时使用supervisorctl ... editor而不是caddy。总配置 deploy/docker/fs/etc/supervisor/supervisord.conf 通过[include]加载SUPERVISORD_CONF_TARGET目录容器内为$TMP/supervisor-conf.d/下的全部*.conf并保留[rpcinterface:supervisor]段以支持supervisorctl与 Web 界面。用 supervisorctl 查看各进程状态在包含docker-compose.yml的安装目录下执行docker-compose exec appsmith-ce supervisorctl status该命令返回容器内所有受管进程的运行状态是判断后端是否活着、Caddy 是否活着的第一步。查看某个进程的日志尾部以 backend 的 stderr 为例docker-compose exec appsmith-ce supervisorctl tail backend stderr文档同时说明可用docker ps/docker-compose ps确认容器本身在运行而进程级别的状态以supervisorctl status的输出为准。重启、停止与启动进程supervisorctl的常用动作restart、stop、start等完整清单见 Supervisor 官方文档。仓库文档中实际使用到的是restart例如导入数据库备份后需要重启后端服务使其生效该场景完整流程见 README 的 Import database 小节# 先把备份文件拷入容器再导入README 中的标准流程 docker-compose cp ./appsmith-data.archive appsmith-ce:/appsmith-stacks/data/restore/ docker-compose exec appsmith-ce appsmithctl import_db # 导入完成后重启后端 docker-compose exec appsmith-ce supervisorctl restart backend同样地重启 Caddy 使用supervisorctl restart editorCaddy 的 supervisord 程序名为editor。使用 Supervisord Web 界面监控进程supervisord 自带一个 Web 管理界面地址为http://localhost/supervisor/用于监控和管理容器内各个进程命令行supervisorctl面向同样的目标。注意该地址访问的是容器内的 supervisord经 Caddy 暴露不是宿主机上的任何服务。进程日志在哪里各程序的日志路径在各自的.conf中定义backend.conf为例其余程序同构[program:backend] command/opt/appsmith/run-with-env.sh /opt/appsmith/run-java.sh autorestarttrue autostarttrue priority20 startretries3 startsecs20 stderr_logfile%(ENV_APPSMITH_LOG_DIR)s/%(program_name)s/%(ENV_HOSTNAME)s-stderr.log stdout_logfile%(ENV_APPSMITH_LOG_DIR)s/%(program_name)s/%(ENV_HOSTNAME)s-stdout.log stdout_logfile_maxbytes30MB stderr_logfile_maxbytes30MB日志目录APPSMITH_LOG_DIR默认为/appsmith-stacks/logs每个程序一个子目录单文件上限 30MB。由于 docker-compose 已把./stacks挂载到/appsmith-stacks这些日志在宿主机上对应./stacks/logs/程序名/目录目录清单见 entrypoint.sh 中的mkdir -p $APPSMITH_LOG_DIR/{supervisor,backend,mcp,cron,editor,rts,mongodb,redis,postgres,appsmithctl}。另外supervisord.conf中定义了[eventlistener:stdout]由各程序的*_events_enabledtrue把 stdout/stderr 事件转发到容器主进程的 stdout/stderr因此docker logs也能看到各进程的日志输出。排障要点与边界FATAL 状态的含义程序配置了startretries3进程在达到startsecs要求的存活时间之前反复崩溃、重试耗尽后会进入 FATAL 并停止重启。mcp.conf的注释明确说明这一点startsecs5让崩溃循环最终达到 FATAL而不是无限快速重启。看到 FATAL 时应先看该程序的日志supervisorctl tail 程序名 stderr。supervisord 管不到容器外部docker-compose exec ... supervisorctl操作的对象是容器内进程容器本身的状态是否Up、端口映射用docker ps判断二者层次不同。README 示例输出中的镜像/容器名如appsmith/appsmith与 compose 文件中的appsmith/appsmith-ce/appsmith-ce不一致时以你实际 compose 文件中的服务名和容器名为准执行命令。文档未覆盖的更深层错误README 的 Troubleshooting 小节给出的支持渠道是 supportappsmith.com 或其 Discord 的 #support 频道。完成以上步骤后你应该能独立完成状态总览supervisorctl status、定位单个进程问题supervisorctl tail./stacks/logs/、以及按需重启 backend / editorCaddy这两个核心进程。【免费下载链接】appsmithPlatform to build admin panels, internal tools, and dashboards. Integrates with 25 databases and any API.项目地址: https://gitcode.com/GitHub_Trending/ap/appsmith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

PythonRobotics 动态窗口法(Dynamic Window Approach)实现解析:2D 移动机器人局部避障与轨迹规划实战

PythonRobotics 动态窗口法(Dynamic Window Approach)实现解析:2D 移动机器人局部避障与轨迹规划实战

PythonRobotics 动态窗口法(Dynamic Window Approach)实现解析:2D 移动机器人局部避障与轨迹规划实战 【免费下载链接】PythonRobotics Python sample codes and textbook for robotics algorithms. 项目地址: https://gitcode.com/GitHub_…

📅 2026/9/11 14:09:18
SystemInformer 汉化 5 步走:免费系统监控工具中文界面改造完整指南

SystemInformer 汉化 5 步走:免费系统监控工具中文界面改造完整指南

SystemInformer 汉化 5 步走:免费系统监控工具中文界面改造完整指南 【免费下载链接】systeminformer A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars &…

📅 2026/9/11 14:09:18
如何三步在 Docker 容器中运行 Android 模拟器:docker-android 完整使用指南

如何三步在 Docker 容器中运行 Android 模拟器:docker-android 完整使用指南

如何三步在 Docker 容器中运行 Android 模拟器:docker-android 完整使用指南 【免费下载链接】docker-android Android in docker solution with noVNC supported, video recording and mcp server 项目地址: https://gitcode.com/GitHub_Trending/do/docker-andr…

📅 2026/9/11 14:09:18
MORE NEWS

更多资讯

📰

基于MATLAB的MIMO-OFDM仿真程序解析:从发射链路到误码率曲线

简介:这套基于MATLAB实现的MIMO-OFDM仿真程序,面向通信工程与信号处理方向的初学者和研究人员,是理解多天线正交频分复用系统原理及仿真的实用资料。压缩包共31个文件,含15个m函数文件(完成信道建模、调制解调、OFDM收…

📰

Midscene Chrome扩展安装教程:自然语言控制浏览器,4步跑通第一个AI自动化任务

Midscene Chrome扩展安装教程:自然语言控制浏览器,4步跑通第一个AI自动化任务 【免费下载链接】midscene GUI Agent for E2E Testing 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene Midscene Chrome扩展是一款面向新手的AI浏览器自…

📰

如何用 Docker 运行 Android 模拟器:3 分钟跑通 Docker-Android

如何用 Docker 运行 Android 模拟器:3 分钟跑通 Docker-Android 【免费下载链接】docker-android Android in docker solution with noVNC supported, video recording and mcp server 项目地址: https://gitcode.com/GitHub_Trending/do/docker-android CI …

📰

DevDocs 如何为 R 语言文档编译并获取本地 HTML 源文件?

DevDocs 如何为 R 语言文档编译并获取本地 HTML 源文件? 【免费下载链接】devdocs API Documentation Browser 项目地址: https://gitcode.com/GitHub_Trending/de/devdocs DevDocs 里的 R 文档和大多数文档不一样:它的 scraper Docs::R 继承自 F…

📰

PCIe链路信任机制深度解析:从物理层到事务层的性能真相

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

洁净车间环境监控系统设计与实践

1. 洁净车间环境监控的行业痛点在制药、电子制造、食品加工等行业,洁净车间的温湿度控制直接关系到产品质量和生产安全。传统的人工巡检方式存在三大致命缺陷:数据滞后性:每小时记录一次的手工台账无法捕捉突发性环境波动,等发现问…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬