docker run -d -p 80:80 kodcloud/kodboxmkdir /data
docker run -d -p 80:80 -v /data:/var/www/html kodcloud/kodbox- 使用已有ssl证书
-
证书格式必须是
fullchain.pemprivkey.pemdocker run -d -p 443:443 -v "你的证书目录":/etc/nginx/ssl --name kodbox kodcloud/kodbox
-
git clone https://github.com/KodCloud-dev/docker.git kodbox
cd ./kodbox/compose/
#需在db.env中设置数据库密码,还有yaml中的MYSQL_ROOT_PASSWORD
docker-compose up -dversion: '3.5'
services:
db:
image: mariadb:lts
command: --transaction-isolation=READ-COMMITTED
restart: always
volumes:
- "./db:/var/lib/mysql" #./db是数据库持久化目录,可以修改
environment:
- MYSQL_ROOT_PASSWORD=
- MARIADB_AUTO_UPGRADE=1
- MARIADB_DISABLE_UPGRADE_BACKUP=1
env_file:
- db.env
app:
image: kodcloud/kodbox
restart: always
ports:
- 80:80 #左边80是使用端口,可以修改
volumes:
- "./site:/var/www/html" #./site是站点目录位置,可以修改
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
env_file:
- db.env
depends_on:
- db
- redis
redis:
image: redis:alpine
restart: alwayskodbox容器支持通过环境变量自动配置。您可以在首次运行时预先配置安装页面上要求的所有内容。要启用自动配置,请通过以下环境变量设置数据库连接。
MYSQL/MariaDB:
MYSQL_DATABASE数据库名.MYSQL_USER数据库用户.MYSQL_PASSWORD数据库用户密码.MYSQL_HOST数据库服务地址.MYSQL_PORT数据库端口,默认3306
如果设置了任何值,则在首次运行时不会在安装页面中询问这些值。通过使用数据库类型的所有变量完成配置后,您可以通过设置管理员和密码(仅当您同时设置这两个值时才有效)来配置kodbox实例:
KODBOX_ADMIN_USER管理员用户名.KODBOX_ADMIN_PASSWORD管理员密码.RANDOM_ADMIN_PASSWORD值为·true·时生成随机密码,从日志查看.
redis/memcached:
REDIS_HOSTredis地址.REDIS_PASSWORDredis密码.
uid/gid:
PUID代表站点运行用户nginx的用户uidPGID代表站点运行用户nginx的用户组gid
站点自动更新:
KODBOX_AUTO_UPDATE默认1,镜像内 kodbox 版本较新时自动覆盖升级已有站点。- 设置为
0时,保留已有站点版本和文件,跳过镜像升级覆盖、升级赋权和pre-upgrade/post-upgrade钩子;before-starting钩子仍执行。 - 首次部署(
/var/www/html为空,忽略初始化锁文件)仍正常初始化;已有子目录站点(例如 NFS 挂载到/var/www/html/kodbox)也会保留,不要求根目录存在config/version.php。此开关只控制容器启动时的镜像覆盖,不影响 kodbox 后台手动更新;PHP、Nginx 等运行环境仍随新镜像更新。 KODBOX_UPDATE=1也遵守此开关,不会强制覆盖已有站点。
在 Compose 的 app 服务中配置,重建容器后生效:
environment:
- KODBOX_AUTO_UPDATE=0PHP参数
FPM_MAXphp-fpm最大进程数, 默认50FPM_STARTphp-fpm初始进程数, 默认10FPM_MIN_SPAREphp-fpm最小空闲进程数, 默认10FPM_MAX_SPAREphp-fpm最大空闲进程数, 默认30
镜像基于 php:8.5.12-fpm-alpine3.24,包含 CVE-2026-109618 和
CVE-2026-109619 的修复。修改 Dockerfile 后需要重新构建并使用新镜像重建应用容器;
仅重启旧容器或更新宿主机 PHP 不会生效。Compose 中的 image 也需要指向新构建的镜像。
首次安装或镜像内的 kodbox 新版本覆盖站点后,入口脚本会在安装程序或升级后钩子运行前,
将 /var/www/html(包含持久化站点文件)的所有者修复为 nginx:nginx,
兼容 PUID/PGID,并确保所有者可读写文件、可进入目录。不会沿符号链接修改站点外的目标。
以非 root 用户运行时不更改所有者,挂载目录需要预先授予该用户所有权。
使用独立的 Dockerfile.loong64,基础镜像为
lcr.loongnix.cn/library/php:8.4-alpine-fpm。请在 LoongArch64 节点原生构建:
docker build -f Dockerfile.loong64 -t kodbox:loong64 .
docker run -d --name kodbox-loong64 -p 8080:80 \
-v kodbox-loong64-data:/var/www/html kodbox:loong64打开 http://节点IP:8080 完成安装。Compose 的 app 服务也可以使用
image: kodbox:loong64。
compose/docker-compose.loong64.yml 使用以下镜像:
- 可道云:
registry.cn-hangzhou.aliyuncs.com/kodcloud/kodbox:loongarch64 - MariaDB:
lcr.loongnix.cn/library/mariadb:13.1.1 - Redis:
lcr.loongnix.cn/library/redis:8.8.1-alpine
启动前设置示例中的 MYSQL_ROOT_PASSWORD,并在 compose/db.env 中配置
MYSQL_DATABASE、MYSQL_USER 和 MYSQL_PASSWORD。在龙芯节点运行:
cd compose
docker compose -f docker-compose.loong64.yml up -d默认访问 http://节点IP,数据库和站点分别持久化到 compose/db 和
compose/site。应用容器的文件描述符软、硬限制均为 51200。
直接使用基础镜像内的 PHP-FPM,搭配项目的 Nginx、Supervisor 和入口脚本, 支持现有环境变量与持久化目录。 安装 GD、Intl、LDAP、MySQL、Zip、Imagick、Memcached、Redis 等扩展; Java 使用 OpenJDK 21 无界面运行时。关闭 PHP JIT。
默认使用 8 个编译任务,可通过 --build-arg BUILD_JOBS=4 降低构建资源占用。
如节点 Docker 桥接网络无法访问软件源,可在构建时加 --network host。
构建阶段的 Alpine 软件源默认使用阿里云镜像,最终镜像恢复基础镜像的软件源配置。可通过 --build-arg ALPINE_MIRROR=https://dl-cdn.alpinelinux.org/alpine 切换。
构建需要访问 Alpine 软件源、PECL 和可道云下载接口。
基础镜像标签及可道云下载内容会更新,需要固定版本时可通过
--build-arg PHP_BASE=lcr.loongnix.cn/library/php@sha256:实际摘要 固定基础镜像。