簡體   English   中英

Docker 中的 WebLogic:如何自動啟動托管服務器

[英]WebLogic in Docker: how to start managed servers automatically

我正在學習 Docker,並為 Oracle WebLogic 12.2.1.4 服務器創建映像。

我的圖像准備好了,工作正常。 它包含

  • 管理服務器
  • 兩台托管服務器

當我使用docker run -d -p 7001:7001 --name WL oracle/weblogic-12.2.1.4.0:1.0運行映像時,管理服務器會自動啟動,因為我在Dockerfile末尾添加了以下行:

CMD /u01/oracle/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh

但我需要手動啟動托管服務器。 我需要登錄到容器並手動啟動它們:

  1. docker exec -it WL /bin/bash
  2. ./startManagedWebLogic.sh MANAGED_SERVER_1 http://localhost:7001 &
  3. ./startManagedWebLogic.sh MANAGED_SERVER_2 http://localhost:7001 &

這不是我想要的。 我想在管理服務器啟動並運行后自動啟動托管服務器。

我正在考慮創建一個新的 bash 腳本,將其復制到映像中並使用它來啟動管理和托管服務器。 像這樣:

開始-wls-domain.sh

#!/bin/bash

/u01/oracle/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh &

# there are a more sophisticated way to check the status of the admin server but it is okay for test
sleep 60

./startManagedWebLogic.sh MANAGED_SERVER_1 http://localhost:7001 &
./startManagedWebLogic.sh MANAGED_SERVER_2 http://localhost:7001 &

可以使用CMD命令從 Dockerfile 調用此腳本。

但是使用此解決方案,我無法在默認 Docker 日志中查看輸出。 docker logs WL -f將不顯示任何內容。 此 bash 腳本解決方案的另一個問題是,如果此腳本完成,容器將停止運行。 在這個腳本的末尾我需要一個無限循環嗎?

如果可能的話,我想有一個沒有start-wls-domain.sh的解決方案。

在 Docker 容器中自動啟動 Weblogic 托管服務器的最佳和最簡單的方法是什么?

我遵循了這些建議,並在不同的容器中運行了不同的服務器。 這樣我就能夠正確啟動服務器。

我在 Github 上發布了解決方案,這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM