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

WildFly镜像具有广泛的使用场景,可直接与Docker Compose配合使用,也可作为其他镜像的基础。该镜像无需先构建自定义镜像即可直接启动,当然也支持构建自定义镜像。
此Docker镜像内置三种健康检查策略:
微配置文件健康检查(Microprofile-Health)
默认策略,仅在设置WF_ADMIN_PASS变量时生效。WildFly管理端会自动检查所有安装了微配置文件的部署(详见:[***]
URL检查(URL-check)
需通过环境变量WF_HEALTHCHECK_URLS指定至少一个可访问的URL。若URL不可达或未返回HTTP 200状态码,健康状态将设为“不健康”。此策略可与微配置文件健康检查结合使用。
部署运行检查(Running-Deployments)
仅在未使用前两种策略时生效,仅检查是否存在启动失败的部署。
| 类别 | 变量名 | 可用值或格式 | 默认值 | 用途描述 |
|---|---|---|---|---|
| WF管理 | WF_NO_ADMIN | true | false | false | 设为true表示不需要WildFly管理员账户 |
| WF管理 | WF_ADMIN_USER | <字符串> | admin | 定义WildFly管理员用户名 |
| WF管理 | WF_ADMIN_PASS | <字符串> | -random- | 设置WildFly管理员密码 |
| 健康检查 | WF_HEALTHCHECK_URLS | <换行分隔的URL列表> | - | 包含用于检查容器健康状态的URL列表 |
| 优化配置 | TZ | <字符串> | Europe/Berlin | 时区设置 |
| 优化配置 | WF_ADD_CLI_FILTER | <竖线分隔的字符串> | - | 定义JBoss命令行界面需处理的额外文件扩展名 |
| 优化配置 | WF_MARKERFILES | true | false | auto | auto | 影响部署目录中标记文件(.isdeploying或.deployed)的创建 |
| 优化配置 | WF_MAX_POST_SIZE | <字节数> | 10485760 | 接受的POST请求最大大小(字节) |
| 优化配置 | WF_MAX_PARAMETERS | <数字> | 100000 | 允许解析的最大参数数量 |
| 优化配置 | WF_MAX_CHILD_ELEMENTS | <数字> | 50000 | XML POST请求中允许的最大子元素数量 |
| 优化配置 | WF_BLOCKING_TIMEOUT | <秒数> | 300 | 进程取消前的阻塞超时时间(秒) |
| 优化配置 | WF_TRANSACTION_TIMEOUT | <秒数> | 300 | 事务自动终止前的超时时间(秒) |
| 优化配置 | WF_ENABLE_HTTP2 | true | false | false | 是否启用HTTP2支持 |
| 优化配置 | JAVA_OPTS | <字符串> | -Xms1G -Xmx6G ... | Java虚拟机参数(如需更多内存或自定义系统变量) |
| 安全配置 | WF_SERVER_KEYSTORE_PASSWORD | <字符串> | - | 与/entrypoint-wildfly-server-keystore配合使用的密钥库密码 |
| 安全配置 | WF_SERVER_KEYSTORE_ALIAS | <字符串> | - | 密钥库中存在多个证书时需指定的别名 |
| 日志配置 | WF_SYSTEM_LOG_LEVEL | TRACE | DEBUG | INFO | WARN | ERROR | FATAL | INFO | 设置控制台日志级别 |
| 日志配置 | WF_SYSTEM_LOG_TO | CONSOLE;FILE | CONSOLE | 日志输出目标(多值用分号分隔) |
| 调试配置 | WF_DEBUG | true | false | false | 设为true启用WildFly调试模式 |
| 调试配置 | DEBUG_PORT | <IP>:<端口> | *:8787 | 调试端口配置(IP:端口) |
# 查看更多环境变量 > docker run --rm mosaicgreifswald/wildfly envs
| 路径 | 关联环境变量 | 类型 | 用途描述 |
|---|---|---|---|
| /entrypoint-logs | ENTRY_LOGS | 文件夹 | 后续层可在子目录中存储日志文件 |
| /entrypoint-help-and-usage | ENTRY_USAGE | 文件夹 | 包含各Docker镜像层的README文件及使用示例 |
| /entrypoint-java-cacerts | ENTRY_JAVA_CACERTS | 文件 | 用于存储自定义CA证书(如特定Web请求或CA的服务器证书公钥) |
| /entrypoint-wildfly-cli | ENTRY_WILDFLY_CLI | 文件夹 | 启动WildFly前执行的JBoss命令行界面文件(只读访问) |
| /entrypoint-wildfly-deployments | ENTRY_WILDFLY_DEPLOYS | 文件夹 | 导入部署文件(如ear和war文件,只读访问,可选写访问) |
| /entrypoint-wildfly-addins | ENTRY_WILDFLY_ADDINS | 文件夹 | 导入部署所需的额外文件(只读访问) |
| /entrypoint-wildfly-logs | ENTRY_WILDFLY_LOGS | 文件夹 | 导出所有可用日志文件(读写访问) |
| /entrypoint-wildfly-server-keystore | ENTRY_WILDFLY_SERVER_KEYSTORE | 文件 | 用于服务器证书的密钥库 |
# 查看入口点详情 > docker run --rm mosaicgreifswald/wildfly entrypoints
# 构建WildFly镜像(需依赖mosaicgreifswald/zulujre:21基础镜像) > git clone [***] > cd mosaic-hgw/Docker/image/wildfly > docker build --tag="mosaicgreifswald/wildfly" --file="Dockerfile.wildfly.35" . # 查看已安装组件版本 > docker run --rm mosaicgreifswald/wildfly versions last updated : 2025-01-24 09:05:05 Architecture : x86_64 Distribution : Debian GNU/Linux 12.9 zulu-jre : 21.0.6 WildFly : 35.0.0.Final MySQL-Connector : 9.2.0 EclipseLink : 4.0.5 # 简单启动(带部署文件且无需WildFly管理员用户) > docker run --rm \ -e WF_NO_ADMIN=true \ -p 8080:8080 \ -v /本地部署文件路径:/entrypoint-wildfly-deployments \ mosaicgreifswald/wildfly # 只读部署目录配置(禁用标记文件) > docker run --rm \ -e WF_ADMIN_PASS=top-secret \ -e WF_MARKERFILES=false \ -e WF_HEALTHCHECK_URLS=http://localhost:8080\nhttp://localhost:8080/your-app.html \ -p 8080:8080 \ -p 9990:9990 \ -v /本地CLI文件路径:/entrypoint-wildfly-cli \ -v /本地只读部署文件路径:/entrypoint-wildfly-deployments \ mosaicgreifswald/wildfly
通过卷挂载主机目录时,默认文件所有者为内部mosaic用户(UID:GID=1111:1111)。需为主机可写目录授予该用户权限:
# 在主机执行 chown -R 1111:1111 deployments logs
注意:部署目录不一定需要写权限。若禁用写权限,WildFly将不生成标记文件。
可通过Docker参数--user/-u修改写入用户(UID:GID):
# 修改日志等可写卷的所有者(UID:GID) > docker run --rm -d \ -u 1006:1001 \ -e WF_SYSTEM_LOG_TO=FILE \ -v /本地日志路径:/entrypoint-wildfly-logs \ mosaicgreifswald/wildfly # 查看主机日志目录权限 > ls -la /本地日志路径 总用量 8 drwxr-xr-x 2 1006 1001 4096 12月 11日 10:25 . drwxrwxrwt 10 root root 4096 12月 11日 10:26 .. -rw-r--r-- 1 1006 1001 0 12月 11日 10:25 server.log drwxr-xr-x 2 1006 1001 4096 12月 11日 10:25 system
与MySQL数据库联动的部署示例:
# docker-compose.yml version: '3' services: mysql: image: mysql environment: MYSQL_ROOT_PASSWORD: top-secret volumes: - /本地SQL初始化文件路径:/docker-entrypoint-initdb.d wildfly: image: mosaicgreifswald/wildfly ports: - 8080:8080 - 9990:9990 depends_on: - mysql environment: WF_ADMIN_PASS: top-secret WF_HEALTHCHECK_URLS: | http://localhost:8080 http://localhost:8080/your-app.html volumes: - /本地CLI文件路径:/entrypoint-wildfly-cli - /本地部署文件路径:/entrypoint-wildfly-deployments entrypoint: /bin/bash command: -c "./wait-for-it.sh mysql:3306 -t 60 && ./run.sh"
JBoss命令行界面(CLI)文件是包含一系列JBoss服务器命令的文本文件,用于自动化部署、配置系统设置或执行管理操作。通过CLI文件可在不修改镜像的情况下自定义WildFly配置,所有调整均可通过CLI文件传入。
添加MySQL数据源
# add-mysql-datasource.cli data-source add \ --name=MySQLPool \ --jndi-name=java:/jboss/MySQLDS \ --connection-url=jdbc:mysql://mysql:3306/dbName \ --user-name=mosaic \ --password=top-secret \ --driver-name=mysql
添加PostgreSQL驱动模块及数据源
# add-postgre-datasource.cli batch module add \ --name=org.postgre \ --resources=/entrypoint-wildfly-cli/postgresql.jar \ --dependencies=javax.api,javax.transaction.api /subsystem=datasources/jdbc-driver=postgre: \ add( \ driver-name="postgre", \ driver-module-name="org.postgre", \ driver-class-name=org.postgresql.Driver \ ) data-source add \ --name=PostgreSQLPool \ --jndi-name=java:/jboss/PostgreSQLDS \ --connection-url=jdbc:postgresql://app-db:5432/dbName \ --user-name=mosaic \ --password=top-secret \ --driver-name=postgre run-batch
# 查看所有附加文件 > docker run --rm -it mosaicgreifswald/wildfly bash -c "cd /entrypoint-help-and-usage; ls -lah --color; bash" # 复制到本地 > docker run --rm -v "$(pwd)":"$(pwd)" mosaicgreifswald/wildfly bash -c "cp -R /entrypoint-help-and-usage $(pwd)/help-and-usage"
附加文件目录结构:
├─┬─ layer-readme/ │ ├─── README-debian.md │ ├─── README-wildfly.md │ └─── README-zulujre.md └─┬─ examples/ ├─┬─ compose-wildfly-dbdriver/ │ ├─── jboss/ │ └─┬─ add_x_driver.cli │ └─── docker-compose.yml ├─┬─ compose-wildfly-empty/ │ ├─── addins/ │ ├─┬─ envs/ │ │ └─── wf_commons.env │ ├─── jboss/ │ ├─── logs/ │ ├─── sqls/ │ └─── docker-compose.yml └─┬─ pure-envs/ ├─── debian.env ├─── wf_commons.env └─── zulujre.env
| 日期 | 标签 | 变更内容 |
|---|---|---|
| 2025-03-05 | 35-20250305, 35, latest (Dockerfile) | WildFly 35.0.1.Final |
| 2025-01-24 | 35-20250124 (Dockerfile) | openJRE 21.0.6 MySQL-Connector 9.2.0 |
| 2025-01-09 | 35-20250113 (Dockerfile) | Debian 12.9 "bookworm" WildFly 35.0.0.Final EclipseLink 4.0.5 支持--user/-u参数 |
| 2025-01-13 | 34-20250113, 34 (Dockerfile) | Debian 12.9 "bookworm" EclipseLink 4.0.5 支持--user/-u参数 |
| 2024-11-26 | 34-20241126 (Dockerfile) | WildFly 34.0.1.Final |
| 2024-11-11 | 34-20241111 ([Dockerfile]([***] |
免费版仅支持 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