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 | <字节数> | *** | 接受的POST请求最大大小(字节) |
| 优化配置 | WF_MAX_PARAMETERS | <数字> | *** | 允许解析的最大参数数量 |
| 优化配置 | 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:端口) |
shell# 查看更多环境变量 > 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 | 文件 | 用于服务器证书的密钥库 |
shell# 查看入口点详情 > docker run --rm mosaicgreifswald/wildfly entrypoints
shell# 构建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)。需为主机可写目录授予该用户权限:
sh# 在主机执行 chown -R 1111:1111 deployments logs
注意:部署目录不一定需要写权限。若禁用写权限,WildFly将不生成标记文件。
可通过Docker参数--user/-u修改写入用户(UID:GID):
sh# 修改日志等可写卷的所有者(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数据库联动的部署示例:
yml# 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数据源
sh# 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驱动模块及数据源
sh# 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
shell# 查看所有附加文件 > 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429