Docker中为Wildfly集成Keycloak时无法解压适配器文件问题求助
问题原因
- 你使用的curl命令缺少
-L参数,GitHub Release的下载链接会返回302重定向,curl默认不会跟随重定向,最终在容器内下载到的实际是HTML跳转页面,并非真实的zip压缩包,所以unzip无法识别文件格式,报出对应错误。你本地浏览器访问链接可正常下载是因为浏览器会自动处理重定向,和curl默认行为不同,因此本地解压无问题。 - jboss/wildfly官方基础镜像为最小化运行镜像,默认未预装unzip解压工具,也会触发解压失败问题。
修正后的Dockerfile
FROM jboss/wildfly:25.0.0.Final ENV KEYCLOAK_VERSION 15.0.2 ENV WILDFLY_HOME /opt/jboss/wildfly # 切换到root用户安装unzip工具 USER root RUN yum install -y unzip && yum clean all # 切回默认jboss用户,避免后续运行权限问题 USER jboss WORKDIR $WILDFLY_HOME RUN curl -f -L -O https://github.com/keycloak/keycloak/releases/download/${KEYCLOAK_VERSION}/keycloak-oidc-wildfly-adapter-${KEYCLOAK_VERSION}.zip \ && unzip keycloak-oidc-wildfly-adapter-${KEYCLOAK_VERSION}.zip -d . \ && rm -f keycloak-oidc-wildfly-adapter-${KEYCLOAK_VERSION}.zip CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] EXPOSE 8080 EXPOSE 9990
补充说明
如果你之前测试tar格式安装包失败也是相同的重定向问题,给curl添加-L参数即可正常下载真实压缩包完成解压。
内容的提问来源于stack exchange,提问作者Iman
相关产品推荐
相关产品推荐

