专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

pkpofficial/ojs Docker 镜像 - 轩辕镜像 | Docker 镜像高效稳定拉取服务

热门搜索:openclaw🔥nginx🔥redis🔥mysqlopenjdkcursorweb2apimemgraphzabbixetcdubuntucorednsjdk
ojs
pkpofficial/ojs
pkpofficial
Open Journal Systems (OJS)的Docker镜像,用于期刊管理和发布,由Public Knowledge Project开发。基于Debian构建,镜像标签与OJS官方版本对应,提供持久化卷、环境变量配置及内置管理脚本,支持Linux系统,暂不支持ARM架构。
23 次收藏下载次数: 0状态:社区镜像维护者:pkpofficial仓库类型:镜像最近更新:2 个月前
轩辕镜像,快一点,稳很多。点击查看
中文简介版本下载
轩辕镜像,快一点,稳很多。点击查看

OJS (Open Journal Systems) - PKP - 容器/Docker

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标签的别名,更新规则如下:

标签别名指向...描述
latest3_4_0-4最新发布版本
lts3_3_0-17最新LTS版本
stable-3_2_13_2_1-4指定分支的最新稳定版本

重要: 我们仅对刚发布的镜像以及标记为latest和LTS的版本进行安全检查。

镜像命名规则仍在讨论中(如LAMP环境需发布安全补丁时如何处理、是否提供最新镜像、如何处理Web服务器/PHP/使用变体等)。可在上述文档中评论或参与讨论。

如何使用

快速开始

确保已正确安装docker和docker-compose。

bash
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)

环境变量

镜像支持以下环境变量:

名称默认值说明
SERVERNAMElocalhost用于生成httpd.conf和证书
PKP_TOOLojsPKP工具(ojs、omp、ops),目前仅支持OJS
PKP_VERSION3_3_0-14要部署的OJS版本
COMPOSER_PROJECT_NAMEmyjournal容器名称
PKP_CLI_INSTALL0启动容器时自动安装OJS(开发中)
DB_HOSTdb数据库主机
DB_USERpkp数据库用户
DB_PASSWORDojsPwd数据库密码
DB_NAMEojs数据库名称
HTTP_PORT8080HTTP端口
HTTPS_PORT8443HTTPS端口

注意: OJS_CLI_INSTALL和证书功能仍在开发中。

特殊卷

Docker内容默认是临时的,但某些数据需在容器重启后持久化(如数据库内容、上传文件、插件开发文件等)。默认版本文件夹中包含./volumes目录结构(默认禁用),需在docker-compose.yml中取消卷挂载注释并正确配置文件夹。

主机路径容器容器路径描述
./volumes/publicapp/var/www/html/public所有公共文件
./volumes/privateapp/var/www/files所有私有文件(上传内容)
./volumes/config/db.charset.confdb/etc/mysql/conf.d/charset.cnfMariaDB配置文件
./volumes/config/pkp.config.inc.phpapp/var/www/html/config.inc.phpOJS配置文件
./volumes/config/php.custom.iniapp/usr/local/etc/php/conf.d/custom.iniPHP自定义配置
./volumes/config/apache.htaccessapp/var/www/html/.htaccessApache2 htaccess文件
./volumes/logs/appapp/var/log/apache2Apache2日志
./volumes/logs/dbdb/var/log/mysqlMariaDB日志
./volumes/dbdb/var/lib/mysqlMariaDB数据库内容
./volumes/migrationdb/docker-entrypoint-initdb.d数据库初始化文件夹(含SQL文件)
/etc/localtimeapp/etc/localtime与主机时钟同步
TBDapp/etc/ssl/apache2/server.pemSSL证书(crt)
TBDapp/etc/ssl/apache2/server.keySSL密钥(key)

本镜像使用相对路径的“绑定卷”,便于明确数据存储位置。使用前需确保存储文件夹存在且权限正确,可运行以下命令设置权限:

bash
$ 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-scheduledojs运行php tools/runScheduledTasks.php,由cron每小时调用
pkp-cli-installojs使用curl和预定义变量调用OJS安装程序
pkp-pre-startojs强制设置部分配置变量,基于ServerName生成自签名证书
pkp-upgradeojs运行php tools/upgrade.php upgrade(当config.inc.php为卷时可能有问题)
pkp-variableojs修改config.inc.php中的变量值(如:pkp-variable variable newValue)

部分脚本仍处于测试阶段,使用时需注意。可通过docker compose exec在容器外调用:

bash
$ docker compose exec app /usr/local/bin/pkp-variable session_check_ip Off

或使用docker exec:

bash
$ docker exec -it pkp_app_journalname /usr/local/bin/pkp-variable session_check_ip Off

升级OJS

  1. 停止旧版本容器(如"pkpofficial/ojs:2_4_8-5"):

    bash
    docker compose stop
    
  2. 在.env文件中设置新版本(或直接修改docker-compose.yml),将旧版本(如2_4_5-2)替换为新版本(如3_2_1-4)。

  3. 拉取并启动新容器:

    bash
    $ docker compose pull
    $ docker compose up -d
    
  4. 运行升级脚本:

    bash
    $ 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,配置文件和卷均针对Apache2设计。

修改配置的简便方法

无需构建本地镜像,可使用Docker Hub镜像并在docker-compose.yml中映射配置文件。例如,创建./volumes/config/php.custom.ini并取消对应卷注释即可自定义PHP设置。

RESTful URL(简洁URL)

默认启用RESTful URL,Apache已配置,无需在URL中使用index.php。

SSL

Apache启动时会检查SSL证书有效性及CN是否匹配SERVERNAME,若不匹配则生成新证书。可通过卷挂载自定义证书(见docker-compose.yml)。

注意: 此功能正在审核中,未来可能变更。

外部SSL服务(SSL卸载)

若前端有外部服务处理SSL连接,需在<VirtualHost *:80> section中添加PassENV HTTPS到ojs.conf。

如何贡献

更新compose配置和Dockerfile

克隆项目并提交PR,贡献新Dockerfile或docker-compose配置。版本文件基于templates目录下的模板生成,可通过build.sh脚本重新生成:

bash
# 生成特定版本
$ ./build.sh 3_1_2-4

# 生成所有版本
$ ./build.sh

添加新堆栈(如nginx)

  1. 确保版本号在versions.list中。
  2. 在templates目录中创建所需文件(Dockerfile模板、docker-compose模板、配置文件等)。
  3. 编辑build.sh添加新堆栈(如webServers=( 'apache' 'nginx' ))。
  4. 运行build.sh重新生成版本。
  5. 测试并提交PR(仅包含build.sh和模板文件,忽略versions目录)。

故障排除

  • Mac问题:新Mac的ARM架构不支持,可能存在互斥锁设置问题,参考相关链接。
  • Windows问题:PowerShell不兼容wget变量,需手动修改配置文件获取正确版本的config.TEMPLATE。
  • nginx镜像:目前未提供,欢迎贡献。
  • 插件处理:可通过卷挂载或自定义Dockerfile集成插件。
  • 路线图:优先解决Mac镜像问题、自动化构建、基于Containers for PKP文档创建新镜像。

许可证

GPL3 © PKP

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

docker search 报错:专属域名下仅支持 Docker Hub 查询

docker search 报错问题

网页搜不到镜像:Docker Hub 有但轩辕镜像搜索无结果

镜像搜索不到

离线传输镜像:无法直连时用 docker save/load 迁移

离线传输镜像

Docker 插件安装错误:application/vnd.docker.plugin.v1+json

Docker 插件安装错误

WSL 下 Docker 拉取慢:网络与挂载目录影响及优化

WSL 拉取镜像慢

轩辕镜像是否安全?镜像完整性校验(digest)说明

镜像安全性

如何用轩辕镜像拉取镜像?登录方式与专属域名配置

如何拉取镜像

错误码与失败问题

manifest unknown 错误:镜像不存在或标签错误

manifest unknown 错误

TLS/SSL 证书验证失败:Docker pull 时 HTTPS 证书错误

TLS 证书验证失败

DNS 解析超时:无法解析镜像仓库地址或连接超时

DNS 解析超时

410 Gone 错误:Docker 版本过低导致协议不兼容

410 错误:版本过低

402 Payment Required 错误:流量耗尽错误提示

402 错误:流量耗尽

401 UNAUTHORIZED 错误:身份认证失败或登录信息错误

身份认证失败错误

429 Too Many Requests 错误:请求频率超出专业版限制

429 限流错误

Docker login 凭证保存错误:Cannot autolaunch D-Bus(不影响登录)

凭证保存错误

账号 / 计费 / 权限

免费版与专业版区别:功能、限额与使用场景对比

免费版与专业版区别

支持的镜像仓库:Docker Hub、GCR、GHCR、K8s 等列表

轩辕镜像支持的镜像仓库

拉取失败是否扣流量?计费规则说明

拉取失败流量计费

KYSEC 权限不够:麒麟 V10/统信 UOS 下脚本执行被拦截

KYSEC 权限错误

如何申请开具发票?(增值税普票/专票)

开具发票

如何修改网站与仓库登录密码?

修改网站和仓库密码

配置与原理类

registry-mirrors 未生效:仍访问官方仓库或报错的原因

registry-mirrors 未生效

如何去掉镜像名称中的轩辕域名前缀?(docker tag)

去掉域名前缀

如何拉取指定架构镜像?(ARM64/AMD64 等多架构)

拉取指定架构镜像

查看全部问题→

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
pkpofficial/ojs
博客公告Docker 镜像公告与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.