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。這裡補上:

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 網頁伺服器

本目錄檔案