WebSphere Liberty 應用伺服器
以 IBM 官方 websphere-liberty:webProfile7 映像為基底,安裝 Java EE 7 與應用程式安全性功能,並套用自訂 server.xml。
Dockerfile
FROM websphere-liberty:webProfile7
COPY server.xml /config/
ARG REPOSITORIES_PROPERTIES=""
RUN if [ ! -z $REPOSITORIES_PROPERTIES ]; then echo $REPOSITORIES_PROPERTIES > /opt/ibm/wlp/etc/repositories.properties; fi \
&& installUtility install --acceptLicense appSecurityClient-1.0 javaee-7.0 javaeeClient-7.0 \
&& if [ ! -z $REPOSITORIES_PROPERTIES ] ; then rm /opt/ibm/wlp/etc/repositories.properties; fi \
&& rm -rf /output/workarea /output/logs
三個設計重點
installUtility 安裝 feature。 Liberty 是模組化的,基底映像只有 Web Profile 7。這裡補上:
javaee-7.0— 完整 Java EE 7javaeeClient-7.0— Java EE 用戶端容器appSecurityClient-1.0— 應用程式安全性用戶端
REPOSITORIES_PROPERTIES build argument。 在沒有網路的環境裡,可以指向內部的 Liberty Asset Repository:
docker build \
--build-arg REPOSITORIES_PROPERTIES="repository.url=http://internal-repo/liberty" \
-t liberty-javaee7:latest .
檔案在安裝完成後立刻刪掉,不會留在最終映像層裡。
清理 /output/workarea 與 /output/logs。 安裝過程產生的暫存與日誌會被移除,縮小映像體積。
設定檔
server.xml 定義啟用的 feature、HTTP endpoint 與應用程式部署,是 Liberty 唯一的主要設定檔。
建置與執行
# 建置映像
docker build -t liberty-javaee7:latest .
# 啟動容器
docker run -d \
-p 9080:9080 \
-p 9443:9443 \
--name liberty liberty-javaee7:latest
# 查看日誌
docker logs -f liberty
| Port | 用途 |
|---|---|
| 9080 | HTTP |
| 9443 | HTTPS |
部署應用程式時把 WAR 掛到 /config/dropins/:
docker run -d -p 9080:9080 \
-v $(pwd)/myapp.war:/config/dropins/myapp.war \
liberty-javaee7:latest
相關資源
← 回到 Web 網頁伺服器