Jenkins ਕੰਟੇਨਰ: ਗੁਪਤ ਫਾਈਲ ਨਾਲ Maven ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਭੇਜਣਾ
Jenkins ਗੁਪਤ ਫਾਈਲ ਬਾਈਂਡ ਕਰੋ ਅਤੇ ਇਸਦਾ ਕੰਟੇਨਰ ਵਿੱਚ ਦਿਸਣ ਵਾਲਾ ਪਾਥ mvn -s ਨੂੰ ਦਿਓ।
Maven ਦੀ ਰਿਪੋਜ਼ਟਰੀ ਪ੍ਰੌਕਸੀ ਇਸਦੀ settings.xml ਵਿੱਚ ਹੁੰਦੀ ਹੈ। ਜਦੋਂ Jenkins ਬਿਲਡ ਪਹਿਲਾਂ ਹੀ Maven ਕੰਟੇਨਰ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੋਵੇ, ਤਾਂ ਉਹ ਫਾਈਲ ਉੱਥੇ ਚੱਲ ਰਹੀ Maven ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਦਿਓ।
ਪੂਰੀ ਲੋੜੀਂਦੀ settings.xml ਨੂੰ maven-proxy-settings ਨਾਂ ਦੇ Jenkins Secret file ਪ੍ਰਮਾਣ ਵਜੋਂ ਸੰਭਾਲੋ। ਮੌਜੂਦਾ ਕੰਟੇਨਰ ਸਟੇਜ ਦੇ ਕਦਮਾਂ ਦੇ ਅੰਦਰ:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
ਬਾਈਂਡਿੰਗ ਇੱਕ ਅਸਥਾਈ ਫਾਈਲ ਪਾਥ ਦਿੰਦੀ ਹੈ। ਇੱਕਲ ਉਦਾਹਰਣ ਵਾਲੀ Groovy ਸਟ੍ਰਿੰਗ ਵੇਰੀਏਬਲ ਵਿਸਥਾਰ shell ਉੱਤੇ ਛੱਡ ਦਿੰਦੀ ਹੈ, ਅਤੇ shell ਦੇ ਦੋਹਰੇ ਉਦਾਹਰਣ ਪਾਥ ਨੂੰ ਇੱਕ ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਰੱਖਦੇ ਹਨ। Maven ਦਾ -s ਵਿਕਲਪ ਉਸ ਫਾਈਲ ਨੂੰ ਵਰਤੋਂਕਾਰ ਸੈਟਿੰਗਾਂ ਵਜੋਂ ਚੁਣਦਾ ਹੈ; -B ਬੈਚ ਮੋਡ ਚੁਣਦਾ ਹੈ।
ਪ੍ਰਮਾਣ ਫਾਈਲ ਵਿੱਚ ਬਿਲਡ ਦਾ ਪ੍ਰੌਕਸੀ ਹੋਸਟ, ਪੋਰਟ, ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ nonProxyHosts ਇਸਦੇ proxies ਭਾਗ ਵਿੱਚ ਹੋ ਸਕਦੇ ਹਨ, ਨਾਲ ਹੀ ਹੋਰ ਲੋੜੀਂਦੀਆਂ ਵਰਤੋਂਕਾਰ ਸੈਟਿੰਗਾਂ। Maven ਵਿੱਚ ਪ੍ਰੌਕਸੀ ਬਾਈਪਾਸ ਸੂਚੀ ਖੜ੍ਹੀਆਂ ਪੱਟੀਆਂ ਵਰਤਦੀ ਹੈ ਹੋਸਟ ਪੈਟਰਨਾਂ ਵਿਚਕਾਰ।
ਫਾਈਲ ਉੱਥੇ ਹੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜਿੱਥੇ Maven ਚੱਲਦਾ ਹੈ
Docker Pipeline ਨਾਲ, ਏਜੰਟ ਅਤੇ ਕੰਟੇਨਰ ਨੂੰ ਅਨੁਕੂਲ ਮਾਊਂਟ ਕੀਤਾ ਫਾਈਲਸਿਸਟਮ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਬਾਈਂਡ ਕੀਤਾ ਪਾਥ ਚੱਲਣ ਵਾਲੇ ਕੰਟੇਨਰ ਅੰਦਰ ਪੜ੍ਹਿਆ ਜਾ ਸਕੇ। ਹੱਥ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤੇ docker run ਨੂੰ ਸਪਸ਼ਟ ਫਾਈਲ ਮਾਊਂਟ ਚਾਹੀਦਾ ਹੈ, ਵਧੀਆ ਹੋਵੇ ਤਾਂ ਸਿਰਫ਼-ਪੜ੍ਹਨ, ਅਤੇ Maven ਨੂੰ ਕੰਟੇਨਰ-ਪਾਸੇ ਦਾ ਪਾਥ ਮਿਲਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਿਰਫ਼ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਵਜੋਂ ਹੋਸਟ ਪਾਥ ਭੇਜਣ ਨਾਲ ਫਾਈਲ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ।
ਕੰਮਕਾਜੀ ਡਾਇਰੈਕਟਰੀ ਦਾ ਕੋਈ ਵੀ ਬਦਲਾਅ ਪ੍ਰਮਾਣ-ਬਾਈਂਡਿੰਗ ਬਲਾਕ ਅੰਦਰ ਰੱਖੋ, ਤਾਂ ਜੋ ਗੁਪਤ ਫਾਈਲ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਯੋਗ ਉਪ-ਡਾਇਰੈਕਟਰੀ ਵਰਕਸਪੇਸ ਵਿੱਚ ਨਾ ਆਵੇ। ਫਾਈਲ ਨੂੰ ਬਿਲਡ ਲੌਗ ਵਿੱਚ ਨਾ ਛਾਪੋ ਅਤੇ ਸਥਾਈ ਇਮੇਜ ਵਿੱਚ ਨਾ ਕਾਪੀ ਕਰੋ।
ਇਹ ਵਰਤੋਂਕਾਰ ਸੈਟਿੰਗਾਂ ਚੁਣਦਾ ਹੈ। Maven ਦੀਆਂ ਗਲੋਬਲ ਸੈਟਿੰਗਾਂ ਵੀ ਹਿੱਸਾ ਲੈ ਸਕਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਦੋਵੇਂ ਜਾਂਚੋ ਜੇ ਵਿਰਾਸਤੀ ਮਿਰਰ ਜਾਂ ਹੋਰ ਸੰਰਚਨਾ ਅਜੇ ਵੀ ਨਿਪਟਾਰੇ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀ ਹੈ।