先說結論,只有sonarqube跟maven之間確實沒有用ip溝通之外,其他跟gitlab有關的地方,都要用ip。
因為gitlab跟drone之間的認證是會利用external url來溝通,需要到host這邊存取,所以這邊發現有幾個地方會需要用ip:
environment:
- DRONE_GITLAB_SERVER=http://172.18.0.2
- DRONE_SERVER_HOST=172.18.0.4
-- DRONE_RPC_HOST=172.18.0.4
這幾個地方,源頭在gitlab external_url,測試過0.0.0.0或gitlab這個名稱,都無法正常運作,所以就造成以上四個地方確實無法由網域名稱來溝通了。
這部份只能靠host跟container共用hosts或跟dns註冊才有辦法解決了。