ବିଲ୍ଡ ସମୟର ପ୍ରକ୍ସି ପ୍ରମାଣପତ୍ରକୁ Docker ଇମେଜ୍ ବାହାରେ ରଖନ୍ତୁ
Docker ର ପୂର୍ବନିର୍ଦ୍ଧାରିତ ବିଲ୍ଡ ପ୍ରକ୍ସି ଇନପୁଟ୍ଗୁଡ଼ିକୁ ସଚେତନ ଭାବରେ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଅସ୍ଥାୟୀ ପ୍ରକ୍ସି ରହସ୍ୟକୁ ଇମେଜ୍ର ସ୍ଥାୟୀ environment ମୂଲ୍ୟରେ ପରିଣତ କରନ୍ତୁ ନାହିଁ।
ବିଲ୍ଡ ସମୟରେ ପ୍ୟାକେଜ୍ ଡାଉନଲୋଡ୍ ପାଇଁ, Dockerfile ENV ରେ ଅସ୍ଥାୟୀ ପଥ ସଞ୍ଚୟ କରିବା ପରିବର୍ତ୍ତେ Docker ର ପୂର୍ବନିର୍ଦ୍ଧାରିତ ପ୍ରକ୍ସି ବିଲ୍ଡ ଇନପୁଟ୍ ବ୍ୟବହାର କରନ୍ତୁ। ଏକ POSIX invocation ଏହା ପ୍ରଦାନ କରିପାରେ:
HTTP_PROXY=http://203.0.113.10:8080 \
HTTPS_PROXY=http://203.0.113.10:8080 \
docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY .ଡକ୍ୟୁମେଣ୍ଟେସନ୍ endpoint କୁ ବଦଳାନ୍ତୁ। --build-arg ନାମ ପରେ ମୂଲ୍ୟ ଛାଡ଼ିଦେଲେ ସେଗୁଡ଼ିକ ଏହି invocation ର environment ରୁ ନିଆଯାଏ। ଏହି ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଇନପୁଟ୍ ପାଇଁ ମେଳ ଖାଉଥିବା ARG ଘୋଷଣା ଆବଶ୍ୟକ ନାହିଁ।
Docker ସେହି ପ୍ରକ୍ସି ଆର୍ଗୁମେଣ୍ଟଗୁଡ଼ିକୁ ଡିଫଲ୍ଟ ଭାବରେ ବିଲ୍ଡ କ୍ୟାସ୍ ପରିଚାଳନା ଏବଂ docker history ରୁ ବାଦ୍ ଦିଏ। Dockerfile ରେ ସେଗୁଡ଼ିକୁ ସ୍ପଷ୍ଟ ଭାବରେ ଉଲ୍ଲେଖ କରିବା ସେହି ଆଚରଣ ବଦଳାଏ, ତେଣୁ ଅନ୍ୟ ଏକ ବିଲ୍ଡ-ଆର୍ଗୁମେଣ୍ଟ ଉଦାହରଣ ଏପରି କରୁଥିବାରୁ କେବଳ ଘୋଷଣା ଯୋଡ଼ନ୍ତୁ ନାହିଁ।
ପ୍ରକ୍ରିୟା ତଥାପି ମୂଲ୍ୟଗୁଡ଼ିକ ପାଏ। ପ୍ରମାଣିତ URL ପ୍ରିଣ୍ଟ ହୋଇଥିବା environment, ଲଗ୍, କପି ହୋଇଥିବା config କିମ୍ବା ପରବର୍ତ୍ତୀ ଇମେଜ୍ କାର୍ଯ୍ୟକଳାପ ମାଧ୍ୟମରେ ବାହାରକୁ ଯାଇପାରେ, ଯଦିଓ ଇତିହାସର ଏକ ଦୃଶ୍ୟ ଏହାକୁ ଛାଡ଼ିଦିଏ। Dockerfile ENV ଏକ ପଥକୁ ଅନ୍ତିମ ଇମେଜ୍ environment ର ଅଂଶ କରେ ଏବଂ କେବଳ ବିଲ୍ଡ ପାଇଁ ଥିବା ପ୍ରକ୍ସିକୁ ପ୍ରତ୍ୟେକ କଣ୍ଟେନରର ନିର୍ଭରତା କରିପାରେ।
ଯେତେବେଳେ ଏକ command କୁ ସମ୍ବେଦନଶୀଳ ସାମଗ୍ରୀ ଆବଶ୍ୟକ ହୁଏ, BuildKit secret mount ବିଲ୍ଡ ସମୟରେ ରହସ୍ୟ ଇଣ୍ଟରଫେସ୍ ପ୍ରଦାନ କରେ। ପ୍ରମାଣପତ୍ରକୁ ସେହି କାର୍ଯ୍ୟକୁ ସୀମିତ ରଖନ୍ତୁ; mount ପ୍ରିଣ୍ଟ କରନ୍ତୁ ନାହିଁ ଏବଂ ଏହାର ବିଷୟବସ୍ତୁକୁ ଇମେଜ୍ ସ୍ତରକୁ କପି କରନ୍ତୁ ନାହିଁ।
ଏହି ବିଲ୍ଡ ଇନପୁଟ୍ daemon ର ପୂର୍ବ ରେଜିଷ୍ଟ୍ରି pull କିମ୍ବା ପହଞ୍ଚିବା ଅସମ୍ଭବ ଦୂର ବିଲ୍ଡରର host route କୁ configure କରେ ନାହିଁ। ପରେ, ପ୍ରତ୍ୟେକ କପି ହଟାଯାଇଛି ବୋଲି ଧରିବା ପରିବର୍ତ୍ତେ ଉଦ୍ଦିଷ୍ଟ ଅନ୍ତିମ ଇମେଜ୍ ଏବଂ ଆପ୍ଲିକେସନ୍ config ରେ ସ୍ଥାୟୀ ପ୍ରକ୍ସି ମୂଲ୍ୟ ଯାଞ୍ଚ କରନ୍ତୁ।