如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🌏 具备自动运行和s6-overlay功能的最新Linux Docker基础镜像。
将官方http://hub.docker.com/_/ubuntu%E3%80%81http://hub.docker.com/_/debian%E5%92%8Chttp://hub.docker.com/_/alpine Docker镜像与https://github.com/just-containers/s6-overlay%E5%92%8C%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8C%EF%BC%88autorun%EF%BC%89%E6%9C%BA%E5%88%B6%E7%9B%B8%E7%BB%93%E5%90%88%E3%80%82%E6%AD%A4%E8%AE%BE%E7%BD%AE%E7%AE%80%E5%8C%96%E4%BA%86%E8%B7%A8%E5%90%84%E7%A7%8D%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E5%8F%AF%E7%A7%BB%E6%A4%8D%E3%80%81%E7%94%9F%E4%BA%A7%E5%B0%B1%E7%BB%AA%E5%BA%94%E7%94%A8%E5%AE%B9%E5%99%A8%E7%9A%84%E8%BF%87%E7%A8%8B%E3%80%82
Docker镜像支持Debian、Ubuntu和Alpine版本。
构建并尝试以下Dockerfile示例:
DockerfileFROM shinsenter/ubuntu-s6:latest # 在此添加你的指令 # 例如: # ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/
DockerfileFROM shinsenter/debian-s6:latest # 在此添加你的指令 # 例如: # ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/
DockerfileFROM shinsenter/alpine-s6:latest # 在此添加你的指令 # 例如: # ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/
默认应用目录为/var/www/html,可通过$APP_PATH环境变量自定义:
shelldocker run -v "$PWD":/app -e APP_PATH=/app shinsenter/debian-s6:latest
此命令将Web应用目录修改为/app。
运行容器时通过设置环境变量覆盖默认用户和组设置。
可用变量:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
APP_USER | 容器内用户名 | www-data |
APP_GROUP | 容器内组名 | www-data |
APP_UID | 用户的数字UID | 容器内默认UID |
APP_GID | 组的数字GID | 容器内默认GID |
例如,以用户myapp(UID为5000)运行容器:
shelldocker run -e APP_USER=myapp -e APP_UID=5000 shinsenter/debian-s6:latest
或在docker-compose.yml中:
yamlservices: web: image: shinsenter/debian-s6:latest environment: APP_USER: "myapp" APP_UID: "5000"
钩子用于自定义运行中容器的行为。
这些镜像支持以下钩子:
| 钩子名称 | 描述 | 使用示例 |
|---|---|---|
onboot | 容器启动或重启时运行 | 发送启动通知 |
first-run | 容器首次启动时运行 | 初始化数据库 |
rebooted | 容器重启时运行 | 检查崩溃日志 |
migration | 运行迁移脚本 | 执行数据库迁移 |
onready | 在migration之后、应用即将就绪时运行 | 预热缓存 |
要使用钩子,在$APP_PATH内创建hooks文件夹,并添加与钩子同名的可执行文件,或在同名子文件夹中添加文件。例如:要在first-run时安装PHP模块,添加脚本hooks/first-run或hooks/first-run/install-modules。
设置DEBUG=1可查看执行的钩子。
放置在/startup/目录中的Shell脚本会在容器启动时按文件名字母顺序自动运行。此功能可在主程序运行前初始化项目,自动执行初始化脚本以节省时间。
通过Dockerfile将名为00-migration的脚本复制到/startup/:
注意:确保脚本具有可执行权限。
DockerfileFROM shinsenter/debian-s6:latest ADD ./autorun/00-migration /startup/00-migration RUN chmod +x /startup/00-migration # 在此添加你的指令 # 例如: # ADD --chown=$APP_USER:$APP_GROUP ./myproject/ /var/www/html/
👉🏻 信息:启动目录已包含名为
99-greeting的脚本,容器启动时会打印欢迎消息。
要禁用autorun脚本,设置环境变量DISABLE_AUTORUN_SCRIPTS=1。
例如,使用docker run:
shelldocker run -e DISABLE_AUTORUN_SCRIPTS=1 shinsenter/debian-s6:latest bash
或在docker-compose.yml中:
yamlservices: web: image: shinsenter/debian-s6:latest environment: DISABLE_AUTORUN_SCRIPTS: "1"
注意:这是辅助功能。如果需要基本
crontab功能之外的高级功能,请考虑构建自己的Docker镜像并安装更适合的调度工具(如https://github.com/aptible/supercronic%EF%BC%89%E3%80%82
要在容器中启用定时任务,可使用ENABLE_CRONTAB=1启动容器。此设置会激活Crontab服务,从$CRONTAB_DIR(默认/etc/crontab.d)加载配置。
定时任务将以$APP_USER:$APP_GROUP(默认www-data:www-data)用户身份运行,$HOME目录由$CRONTAB_HOME(默认$APP_PATH)设置。
以下是添加定时任务的Dockerfile示例:
DockerfileFROM shinsenter/debian-s6:latest ENV ENABLE_CRONTAB=1 # 通过RUN指令创建定时任务 RUN echo '* * * * * echo "每分钟运行此命令!" | tee /tmp/cron-every-minute.txt' >> /etc/crontab.d/sample1; # 或通过ADD指令复制定时任务 ADD ./sample2 /etc/crontab.d/
定时任务格式如下:
# 任务定义: # .---------------- 分钟 (0 - 59) # | .------------- 小时 (0 - 23) # | | .---------- 日 (1 - 31) # | | | .------- 月 (1 - 12) 或 jan,feb,mar,apr... # | | | | .---- 星期 (0 - 6) (周日=0或7) 或 sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * 要执行的命令
也可在docker-compose.yml中通过$CRONTAB_SETTINGS环境变量设置定时任务,容器启动时会加载这些设置,便于后续修改:
yamlservices: web: image: shinsenter/debian-s6:latest environment: ENABLE_CRONTAB: "1" CRONTAB_SETTINGS: "* * * * * echo '每分钟运行此命令!' | tee /tmp/cron-every-minute.txt"
有关定时任务的环境变量详情,见下文其他系统设置。
设置环境变量DEBUG=1启用“调试模式”以获取更详细的日志,可用于docker run或docker-compose.yml。
shelldocker run -e DEBUG=1 shinsenter/debian-s6:latest bash
yamlservices: web: image: shinsenter/debian-s6:latest environment: DEBUG: "1"
这些Docker镜像包含其他环境变量用于微调容器行为:
| 设置名称 | 默认值 | 描述 | 示例 |
|---|---|---|---|
DEFAULT_LOG_PATH | /proc/1/fd/2 | 日志输出路径,默认发送到容器标准输出 | /var/log/container.txt |
DEBUG 或 DEBUG_MODE | 未设置 | 设置为1时启用详细日志 | 1 |
TZ | UTC | 容器默认时区,详见时区列表 | Asia/Tokyo |
DISABLE_AUTORUN_SCRIPTS | 未设置 | 设置为1时禁用所有autorun脚本 | 1 |
DISABLE_AUTORUN_FIX_OWNER_GROUP | 未设置 | 设置为1时禁用应用目录所有权自动修正 | 1 |
DISABLE_GREETING | 未设置 | 设置为1时抑制启动欢迎消息 | 1 |
ENABLE_SSHD | 未设置 | 设置为1时启用容器内SSH服务器 | 1 |
SSHD_AUTHORIZED_KEYS | 未设置 | 公钥(每行一个),将添加到容器~/.ssh/authorized_keys用于认证 | ssh-rsa XXXX... |
ENABLE_CRONTAB | 未设置 | 设置为1时启用Crontab服务,从$CRONTAB_DIR(默认/etc/crontab.d)加载任务 | 1 |
ENABLE_CRONTAB_DEBUG | 未设置 | 设置为1时添加每分钟运行的调试任务,打印cron可见的环境变量 | 1 |
CRONTAB_DIR | /etc/crontab.d | 定时任务定义目录,任务以$APP_USER用户运行 | /path/for/crontab/schedules |
CRONTAB_HOME | $APP_PATH | 定时任务执行时的$HOME目录 | /path/for/crontab |
CRONTAB_MAILTO | 未设置 | 接收定时任务输出的***地址 | admin@example.com |
CRONTAB_PATH | $PATH | 定时任务的可执行文件搜索路径 | /path/for/crontab/bin |
CRONTAB_SETTINGS | 未设置 | 直接在docker-compose.yml中定义定时任务,便于管理容器内计划任务 | 0 0 * * * echo "新的一天!" |
CRONTAB_SHELL | /bin/sh | 定时任务默认shell | /bin/bash |
CRONTAB_TZ | $TZ | 定时任务时区,详见时区列表 | Asia/Tokyo |
SUPERVISOR_PHP_COMMAND | 未设置 | 用自定义PHP命令覆盖容器默认入口点以启动应用 | php -S localhost:80 index.php |
如果觉得这些镜像有用,可通过******,或在GitHub提交issue。
你的支持将帮助维护和改进这些社区镜像。
本项目采用GNU通用公共许可证v3.0授权。
请尊重创建这些镜像的智力成果。如复制或使用本项目的想法,感谢注明出处。
来自越南🇻🇳的爱心奉献。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务