wso2~部署~v4.2.0-alpha本地构建
<p>让我先查看一下v4.2.0-alpha分支的构建相关信息:</p><p>Search files...<br>
让我继续查看构建说明文档:</p>
<p>Search files...<br>
让我查看一下项目根目录下的文件:</p>
<p>Ran tool<br>
让我查看一下 INSTALL.txt 文件:</p>
<p>Read file: INSTALL.txt<br>
让我查看一下 README.md 文件:</p>
<p>Read file: README.md<br>
基于以上信息,我可以为您提供在v4.2.0-alpha分支上构建WSO2 API Manager的详细步骤:</p>
<ol>
<li>系统要求:</li>
</ol>
<ul>
<li>JDK 11 或更高版本</li>
<li>Maven 3.0.4 或更高版本</li>
<li>最小内存要求: 4GB RAM (2GB 给JVM, 2GB 给操作系统)</li>
<li>处理器: 3 GHz Dual-core Xeon/Opteron或更高</li>
<li>操作系统: Windows/Linux/Mac OS X</li>
</ul>
<ol start="2">
<li>构建步骤:</li>
</ol>
<pre><code class="language-bash"># 1. 克隆仓库(如果还没有的话)
git clone https://github.com/wso2/product-apim.git
# 2. 切换到v4.2.0-alpha分支
cd product-apim
git checkout v4.2.0-alpha
# 3. 使用Maven构建项目
mvn clean install -DskipTests -Dcheckstyle.skip
</code></pre>
<p>项目的主要模块包括:</p>
<ul>
<li>modules/styles</li>
<li>modules/org.wso2.am.multitenancy.dashboard.ui</li>
<li>modules/features</li>
<li>modules/p2-profile</li>
<li>modules/oauth2-grant-types</li>
</ul>
<ol start="3">
<li>运行服务器:</li>
</ol>
<blockquote>
<p>可以直接从github上下载构建好的zip包,https://github.com/wso2/product-apim/releases/download/v4.5.0/wso2am-4.5.0.zip</p>
</blockquote>
<p>构建完成后,可以按以下步骤运行:</p>
<pre><code class="language-bash"># 1. 进入构建产物目录
cd modules/distribution/product/target/wso2am-4.2.0-alpha/bin
# 2. 启动服务器
# Linux/Mac:
./api-manager.sh
# Windows:
api-manager.bat
</code></pre>
<ol start="4">
<li>访问各个组件:</li>
</ol>
<ul>
<li>API Publisher: https://localhost:9443/publisher</li>
<li>Developer Portal: https://localhost:9443/devportal</li>
<li>Admin Portal: https://localhost:9443/admin</li>
</ul>
<p>默认登录凭证:</p>
<ul>
<li>用户名: admin</li>
<li>密码: admin</li>
</ul>
<ol start="5">
<li>其他有用的启动选项:</li>
</ol>
<pre><code class="language-bash"># 调试模式启动
./api-manager.sh --debug <port>
# 清理注册表空间
./api-manager.sh --cleanRegistry
# 清理缓存和组件仓库
./api-manager.sh --reset
</code></pre>
<ol start="6">
<li>可选的系统属性:</li>
</ol>
<ul>
<li>-DhttpPort: 覆盖HTTP端口</li>
<li>-DhttpsPort: 覆盖HTTPS端口</li>
<li>-DSynapseServerName: 设置synapse服务器名称</li>
<li>-DosgiConsole: 启用OSGi控制台</li>
<li>-Dsetup: 清理数据库并重新配置</li>
</ul>
<ol start="7">
<li>安全配置:<br>
如果需要保护配置文件中的敏感信息,可以使用secure vault:</li>
</ol>
<pre><code class="language-bash"># Linux:
./ciphertool.sh -Dconfigure
# Windows:
./ciphertool.bat -Dconfigure
</code></pre>
<p>注意事项:</p>
<ol>
<li>确保使用正确版本的JDK和Maven</li>
<li>构建过程可能需要一些时间,因为需要下载依赖</li>
<li>如果遇到构建错误,可以尝试添加 <code>-DskipTests</code> 参数跳过测试</li>
<li>确保有足够的内存和磁盘空间</li>
<li>如果使用IDE,确保正确配置JDK版本和Maven设置</li>
</ol>
<p>如果您在构建过程中遇到任何具体问题,请告诉我,我会帮您解决。</p>
<h1 id="错误列表">错误列表</h1>
<p><img src="https://user-images.githubusercontent.com/37854200/38284099-27cad4ee-37ec-11e8-8930-2093a3329f3d.png" alt="" loading="lazy"></p>
<h2 id="解决错误">解决错误</h2>
<p>1 查看jdk版本,需要是jdk11</p>
<p>2 添加settings.xml里的仓库</p>
<pre><code><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>wso2-nexus</id>
<repositories>
<repository>
<id>wso2-nexus</id>
<name>WSO2 internal Repository</name>
<url>https://maven.wso2.org/nexus/content/groups/wso2-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>wso2-nexus</activeProfile>
</activeProfiles>
</settings>
</code></pre>
<h1 id="打包镜像">打包镜像</h1>
<p>我来帮您说明如何将本地修改打包到WSO2 API Manager 4.2.0-alpha的Docker镜像中。这里有两种主要方法:</p>
<ol>
<li>使用官方的Docker构建方法:</li>
</ol>
<p>首先让我查看一下项目中的Docker相关文件:</p>
<p>Search files...<br>
让我继续搜索Docker相关的配置:</p>
<p>Search files...<br>
根据搜索结果,我发现在v4.2.0-alpha分支中没有直接的Docker构建文件。不过我可以为您提供两种方法来将本地修改打包到Docker镜像中:</p>
<p>方法1:使用官方Docker镜像作为基础镜像</p>
<ol>
<li>首先构建修改后的项目:</li>
</ol>
<pre><code class="language-bash">mvn clean install -DskipTests
</code></pre>
<ol start="2">
<li>创建一个Dockerfile:</li>
</ol>
<pre><code class="language-bash">ADD alpine-minirootfs-3.21.3-x86_64.tar.gz / # buildkit
CMD ["/bin/sh"]
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
RUN /bin/sh -c apk add
ENV JAVA_VERSION=jdk-21.0.5+11
ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN /bin/sh -c set -eux;
LABEL maintainer=WSO2 Docker Maintainers <dev@wso2.org>
ARG USER=wso2carbon
ARG USER_ID=10001
ARG USER_GROUP=wso2
ARG USER_GROUP_ID=10001
ARG USER_HOME=/home/wso2carbon
ARG WSO2_SERVER_NAME=wso2am
ARG WSO2_SERVER_VERSION=4.5.0
ARG WSO2_SERVER_REPOSITORY=product-apim
ARG WSO2_SERVER=wso2am-4.5.0
ARG WSO2_SERVER_HOME=/home/wso2carbon/wso2am-4.5.0
ARG WSO2_SERVER_DIST_URL=https://github.com/wso2/product-apim/releases/download/v4.5.0/wso2am-4.5.0.zip
ARG MOTD=printf "\n Welcome to
ENV ENV=/home/wso2carbon/.ashrc
RUN |12 USER=wso2carbon USER_ID=10001 USER_GROUP=wso2
COPY --chown=wso2carbon:wso2 docker-entrypoint.sh /home/wso2carbon/ #
RUN |12 USER=wso2carbon USER_ID=10001 USER_GROUP=wso2
RUN |12 USER=wso2carbon USER_ID=10001 USER_GROUP=wso2
USER 10001
WORKDIR /home/wso2carbon
ENV WORKING_DIRECTORY=/home/wso2carbon WSO2_SERVER_HOME=/home/wso2carbon/wso2am-4.5.0
EXPOSE map[11111/tcp:{} 5672/tcp:{} 8243/tcp:{} 8280/tcp:{}
ENTRYPOINT ["/home/wso2carbon/docker-entrypoint.sh"]
</code></pre>
<ol start="3">
<li>构建Docker镜像:</li>
</ol>
<pre><code class="language-bash">docker build -t wso2am-custom:4.5.0-alpine .
</code></pre>
<ol start="4">
<li>运行自定义镜像:</li>
</ol>
<pre><code class="language-bash">docker run -p 9443:9443 wso2am-custom:4.2.0-alpine
</code></pre>
<p>方法2:从头构建Docker镜像</p>
<ol>
<li>首先构建修改后的项目:</li>
</ol>
<pre><code class="language-bash">mvn clean install -DskipTests
</code></pre>
<ol start="2">
<li>创建一个完整的Dockerfile:</li>
</ol>
<pre><code class="language-bash"># 创建Dockerfile
cat > Dockerfile << 'EOF'
FROM adoptopenjdk:11-jdk-hotspot
# 设置WSO2 API Manager版本
ENV WSO2_SERVER wso2am
ENV WSO2_SERVER_VERSION 4.2.0-alpha
ENV WSO2_SERVER_PACK ${WSO2_SERVER}-${WSO2_SERVER_VERSION}
ENV WORKING_DIRECTORY /home/wso2carbon
ENV USER_HOME /home/wso2carbon
ENV JAVA_OPTS="-Djava.util.prefs.systemRoot=${USER_HOME}/.java -Djava.util.prefs.userRoot=${USER_HOME}/.java/.userPrefs"
# 创建用户和必要的目录
RUN groupadd --system -g 802 wso2carbon && \
useradd --system -g 802 -u 802 wso2carbon && \
mkdir -p ${WORKING_DIRECTORY} && \
mkdir -p ${USER_HOME}/.java/.userPrefs && \
chmod -R 760 ${USER_HOME}/.java && \
chown -R wso2carbon:wso2carbon ${USER_HOME}/.java
# 复制构建产物
COPY modules/distribution/product/target/${WSO2_SERVER_PACK}/ ${WORKING_DIRECTORY}/${WSO2_SERVER_PACK}/
# 设置工作目录
WORKDIR ${WORKING_DIRECTORY}/${WSO2_SERVER_PACK}
# 设置正确的权限
RUN chown -R wso2carbon:wso2carbon ${WORKING_DIRECTORY}
USER wso2carbon
# 设置环境变量
ENV WORKING_DIRECTORY=${WORKING_DIRECTORY} \
WSO2_SERVER_HOME=${WORKING_DIRECTORY}/${WSO2_SERVER_PACK}
# 暴露端口
EXPOSE 9763 9443 9999 11111 8280 8243 5672 9711 9611 9099
# 启动命令
ENTRYPOINT ["/home/wso2carbon/wso2am-4.2.0-alpha/bin/api-manager.sh"]
EOF
</code></pre>
<ol start="3">
<li>构建Docker镜像:</li>
</ol>
<pre><code class="language-bash">docker build -t wso2am-custom:4.2.0-alpha .
</code></pre>
<ol start="4">
<li>运行自定义镜像:</li>
</ol>
<pre><code class="language-bash">docker run -p 9443:9443 wso2am-custom:4.2.0-alpha
</code></pre>
<p>两种方法的比较:</p>
<ol>
<li>方法1(使用官方镜像)的优点:</li>
</ol>
<ul>
<li>更简单,只需要覆盖修改的文件</li>
<li>继承官方镜像的所有优化配置</li>
<li>构建速度更快</li>
</ul>
<ol start="2">
<li>方法2(从头构建)的优点:</li>
</ol>
<ul>
<li>完全控制构建过程</li>
<li>可以添加自定义依赖和配置</li>
<li>更适合大规模定制</li>
</ul>
<p>建议:</p>
<ol>
<li>如果只是修改了少量文件(如UI组件),建议使用方法1</li>
<li>如果进行了大量修改或需要添加新的依赖,建议使用方法2</li>
<li>在生产环境中,建议添加适当的健康检查和监控配置</li>
<li>考虑使用多阶段构建来减小最终镜像大小</li>
<li>记得备份您的自定义修改</li>
</ol>
<p>要访问部署的服务:</p>
<ul>
<li>Publisher: https://localhost:9443/publisher</li>
<li>Developer Portal: https://localhost:9443/devportal</li>
<li>Admin Console: https://localhost:9443/admin</li>
</ul>
<p>默认凭据:</p>
<ul>
<li>用户名:admin</li>
<li>密码:admin</li>
</ul>
<p>如果您需要进一步的帮助或遇到特定问题,请告诉我。</p>
</div>
<div id="MySignature" role="contentinfo">
<p></p>
<div class="navgood">
<p>作者:仓储大叔,张占岭,<br>
荣誉:微软MVP<br>QQ:853066980</p>
<p><strong>支付宝扫一扫,为大叔打赏!</strong>
<br><img src="https://images.cnblogs.com/cnblogs_com/lori/237884/o_IMG_7144.JPG"></p>
</div><br><br>
来源:https://www.cnblogs.com/lori/p/18907954
頁:
[1]