我正在將OpenShift v2的Web應用程序遷移到OpenShift Pro。這是一個常規的Java Tomcat應用程序。OpenShift遷移 - Conf文件中的ENV變量沒有像以前一樣替換
我在OpenShift V2 web應用已經額外的docBase在server.xml中指定這樣的:
<Context docBase="${OPENSHIFT_DATA_DIR}/documents" path="/documents" />
在部署過程中的環境變量OPENSHIFT_DATA_DIR其值改爲:的/ opt /應用程序根/數據
正如你所期望的那樣。
我已經完成了在OpenShift Pro中設置的等效(儘管完全不同),但部署失敗。經過調查,我在日誌中看到這一點:
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/deployments/${OPENSHIFT_DATA_DIR}/documents] is not valid
爲了克服這一點,我只是硬編碼的/ opt /應用程序根/數據在server.xml中是這樣的:
<Context docBase="/opt/app-root/data/documents" path="/documents" />
下部署工作。
我的問題是:
這是在部署過程中的錯誤?
這是錯誤的方式來獲取注入配置文件的環境變量?
如果是這樣,那麼正確的方法是什麼?
任何幫助,將不勝感激,我不喜歡硬編碼的東西,它總是回來咬你在將來的某一天......
謝謝格雷厄姆,但問題不是環境變量,而是他們的替代。 $ {OPENSHIFT_DATA_DIR}沒有被正確替換,它被替換爲:'/ deployments/$ {OPENSHIFT_DATA_DIR}'在原始文本前註釋'/ deployments /'。我剛剛在我的系統上看到了一個log4j.xml文件,它有一個如下所示的環境變量:$ {env:OPENSHIFT_DATA_DIR}所以我稍後再試一次... – Lyndon
我現在可以確認$ {env :OPENSHIFT_DATA_DIR}也沒有被替換。我在日誌中得到了這個:指定的主資源集[/ deployments/$ {env:OPENSHIFT_DATA_DIR}/temp]無效。 – Lyndon