本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Open Journal Systems (OJS)是一款期刊管理与发布系统,由Public Knowledge Project通过联邦资助开发,旨在扩大和改善研究成果的获取途径。
本仓库中的镜像最初基于Alpine Linux构建,但从3.5版本开始迁移到Debian镜像。可能包含其他额外变更。
仓库中的镜像有多个变体(参见版本)。本项目由Marc Bria维护。
镜像在Linux系统中构建和测试,理论上可在Windows上运行。目前暂未提供ARM架构镜像,因此无法在最新的Mac电脑上使用。
========================================================================================================================= == 警告 ========================================================================================================================= == == 我们正处于重构过程中,因此本描述可能已过时,部分信息可能不准确。 == 最新文档请始终参考 pkp/containers 仓库: == == - [***] == - [***] =========================================================================================================================
基本原则是“Docker镜像的名称与OJS***仓库中的标签名称相同”,但带有应用前缀。即,如果需要拉取OJS 3.3.0-17版本(***标签为3_3_0-17),只需拉取pkpofficial/ojs-3_3_0-17镜像。
同时维护latest、lts和stable标签的别名,更新规则如下:
| 标签 | 别名指向... | 描述 |
|---|---|---|
| latest | 3_4_0-4 | 最新发布版本 |
| lts | 3_3_0-17 | 最新LTS版本 |
| stable-3_2_1 | 3_2_1-4 | 指定分支的最新稳定版本 |
重要: 我们仅对刚发布的镜像以及标记为latest和LTS的版本进行安全检查。
镜像命名规则仍在讨论中(如LAMP环境需发布安全补丁时如何处理、是否提供最新镜像、如何处理Web服务器/PHP/使用变体等)。可在上述文档中评论或参与讨论。
确保已正确安装docker和docker-compose。
git clone [***] journalName && cd journalName rm docs templates -Rf # 删除生产环境中无用的文件夹 vim .env # 根据需要设置环境变量(OJS版本、端口、URL等) source .env && wget "[***]{PKP_TOOL}/raw/${PKP_VERSION}/config.TEMPLATE.inc.php" -O ./volumes/config/pkp.config.inc.php sudo chown 33:33 ./volumes -R && sudo chown 999:999 ./volumes/db -R # 确保文件夹权限正确 docker compose up -d # 访问新站点并完成安装(数据库访问凭据见步骤5)
完整说明请参考 "easyOJS" 文档。
不同OJS版本与不同PHP版本(5至8)组合。未来计划添加不同Web服务器(Apache HTTP Server、nginx)的变体。
注意: 目前并非所有组合都可用!我们主要专注于Apache2。欢迎提交PR。
所有版本标签可在 Docker Hub Tags 标签页 查看。
(若标签中未提及Web服务器,则默认使用Apache)
镜像支持以下环境变量:
| 名称 | 默认值 | 说明 |
|---|---|---|
| SERVERNAME | localhost | 用于生成httpd.conf和证书 |
| PKP_TOOL | ojs | PKP工具(ojs、omp、ops),目前仅支持OJS |
| PKP_VERSION | 3_3_0-14 | 要部署的OJS版本 |
| COMPOSER_PROJECT_NAME | myjournal | 容器名称 |
| PKP_CLI_INSTALL | 0 | 启动容器时自动安装OJS(开发中) |
| DB_HOST | db | 数据库主机 |
| DB_USER | pkp | 数据库用户 |
| DB_PASSWORD | ojsPwd | 数据库密码 |
| DB_NAME | ojs | 数据库名称 |
| HTTP_PORT | 8080 | HTTP端口 |
| HTTPS_PORT | 8443 | HTTPS端口 |
注意: OJS_CLI_INSTALL和证书功能仍在开发中。
Docker内容默认是临时的,但某些数据需在容器重启后持久化(如数据库内容、上传文件、插件开发文件等)。默认版本文件夹中包含./volumes目录结构(默认禁用),需在docker-compose.yml中取消卷挂载注释并正确配置文件夹。
| 主机路径 | 容器 | 容器路径 | 描述 |
|---|---|---|---|
| ./volumes/public | app | /var/www/html/public | 所有公共文件 |
| ./volumes/private | app | /var/www/files | 所有私有文件(上传内容) |
| ./volumes/config/db.charset.conf | db | /etc/mysql/conf.d/charset.cnf | MariaDB配置文件 |
| ./volumes/config/pkp.config.inc.php | app | /var/www/html/config.inc.php | OJS配置文件 |
| ./volumes/config/php.custom.ini | app | /usr/local/etc/php/conf.d/custom.ini | PHP自定义配置 |
| ./volumes/config/apache.htaccess | app | /var/www/html/.htaccess | Apache2 htaccess文件 |
| ./volumes/logs/app | app | /var/log/apache2 | Apache2日志 |
| ./volumes/logs/db | db | /var/log/mysql | MariaDB日志 |
| ./volumes/db | db | /var/lib/mysql | MariaDB数据库内容 |
| ./volumes/migration | db | /docker-entrypoint-initdb.d | 数据库初始化文件夹(含SQL文件) |
| /etc/localtime | app | /etc/localtime | 与主机时钟同步 |
| TBD | app | /etc/ssl/apache2/server.pem | SSL证书(crt) |
| TBD | app | /etc/ssl/apache2/server.key | SSL密钥(key) |
本镜像使用相对路径的“绑定卷”,便于明确数据存储位置。使用前需确保存储文件夹存在且权限正确,可运行以下命令设置权限:
$ chown 33:33 ./volumes -R # Debian容器内www-data用户(uid 33/gid 33) $ chown 999:999 ./volumes/db -R $ chown 999:999 ./volumes/logs/db -R # MariaDB用户(uid 999/gid 999)
Dockerfile在/usr/local/bin中包含以下脚本,用于简化常见操作:
| 脚本 | 容器 | 描述 |
|---|---|---|
| pkp-run-scheduled | ojs | 运行php tools/runScheduledTasks.php,由cron每小时调用 |
| pkp-cli-install | ojs | 使用curl和预定义变量调用OJS安装程序 |
| pkp-pre-start | ojs | 强制设置部分配置变量,基于ServerName生成自签名证书 |
| pkp-upgrade | ojs | 运行php tools/upgrade.php upgrade(当config.inc.php为卷时可能有问题) |
| pkp-variable | ojs | 修改config.inc.php中的变量值(如:pkp-variable variable newValue) |
部分脚本仍处于测试阶段,使用时需注意。可通过docker compose exec在容器外调用:
$ docker compose exec app /usr/local/bin/pkp-variable session_check_ip Off
或使用docker exec:
$ docker exec -it pkp_app_journalname /usr/local/bin/pkp-variable session_check_ip Off
停止旧版本容器(如"pkpofficial/ojs:2_4_8-5"):
docker compose stop
在.env文件中设置新版本(或直接修改docker-compose.yml),将旧版本(如2_4_5-2)替换为新版本(如3_2_1-4)。
拉取并启动新容器:
$ docker compose pull $ docker compose up -d
运行升级脚本:
$ docker compose up php tools/upgrade.php check && docker compose up php tools/upgrade.php upgrade
提示: 可通过docker ps -a | grep pkp_app查看OJS容器名称。
警告: 直接升级至最新稳定版需根据初始版本,推荐路径:2.x > 2.4.8-5 > 3.1.2-4 > 3.2.1-4 > 3.3.x-x
目前仅支持Apache2,配置文件和卷均针对Apache2设计。
无需构建本地镜像,可使用Docker Hub镜像并在docker-compose.yml中映射配置文件。例如,创建./volumes/config/php.custom.ini并取消对应卷注释即可自定义PHP设置。
默认启用RESTful URL,Apache已配置,无需在URL中使用index.php。
Apache启动时会检查SSL证书有效性及CN是否匹配SERVERNAME,若不匹配则生成新证书。可通过卷挂载自定义证书(见docker-compose.yml)。
注意: 此功能正在审核中,未来可能变更。
若前端有外部服务处理SSL连接,需在<VirtualHost *:80> section中添加PassENV HTTPS到ojs.conf。
克隆项目并提交PR,贡献新Dockerfile或docker-compose配置。版本文件基于templates目录下的模板生成,可通过build.sh脚本重新生成:
# 生成特定版本 $ ./build.sh 3_1_2-4 # 生成所有版本 $ ./build.sh
versions.list中。templates目录中创建所需文件(Dockerfile模板、docker-compose模板、配置文件等)。build.sh添加新堆栈(如webServers=( 'apache' 'nginx' ))。build.sh重新生成版本。build.sh和模板文件,忽略versions目录)。GPL3 © PKP
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429