[英]docker systemd: how i can automatically start a container while setting up a service in systemd (BASH)
[英]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
但我需要手動啟動托管服務器。 我需要登錄到容器並手動啟動它們:
docker exec -it WL /bin/bash
./startManagedWebLogic.sh MANAGED_SERVER_1 http://localhost:7001 &
./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.