Dockerfiles में variables

Docker परिचय

Tim Sangster

Software Engineer @ DataCamp

ARG instruction के साथ variables

Dockerfile में variables बनाएँ

ARG <var_name>=<var_value>

उदाहरण: ARG path=/home/repl

Dockerfile में उपयोग करने के लिए

$path

उदाहरण: COPY /local/path $path

Docker परिचय

ARG instruction के उपयोग-केस

Python वर्ज़न सेट करना

FROM ubuntu
ARG python_version=3.9.7-1+bionic1
RUN apt-get install python3=$python_version
RUN apt-get install python3-dev=$python_version

एक फ़ोल्डर कॉन्फ़िगर करना

FROM ubuntu
ARG project_folder=/projects/pipeline_v3
COPY /local/project/files $project_folder
COPY /local/project/test_files $project_folder/tests
Docker परिचय

बिल्ड समय पर ARG variables सेट करना

FROM ubuntu
ARG project_folder=/projects/pipeline_v3
COPY /local/project/files $project_folder
COPY /local/project/test_files $project_folder/tests

बिल्ड कमांड में variable सेट करना

docker build --build-arg project_folder=/repl/pipeline .

ARG ओवरराइट हो जाता है, और फाइलें यहाँ पहुँचती हैं:

COPY /local/project/files /repl/pipeline
COPY /local/project/test_files /repl/pipeline/tests
Docker परिचय

ENV के साथ variables

Dockerfile में variables बनाएँ

ENV <var_name>=<var_value>

उदाहरण: ENV DB_USER=pipeline_user

Dockerfile में या runtime पर उपयोग करने के लिए

$DB_USER

उदाहरण: CMD psql -U $DB_USER

Docker परिचय

ENV instruction के उपयोग-केस

Runtime पर उपयोग होने वाली डायरेक्टरी सेट करना

ENV DATA_DIR=/usr/local/var/postgres
ENV MODE production

Runtime पर variable सेट या बदलना

docker run --env <key>=<value> <image-name>

docker run --env POSTGRES_USER=test_db --env POSTGRES_PASSWORD=test_db postgres

1 https://hub.docker.com/_/postgres
Docker परिचय

Variables में secrets सुरक्षित नहीं होते

docker history <image-name>

ARG DB_PASSWORD=example_password

docker history में यह दिखेगा:

IMAGE          CREATED        CREATED BY                          SIZE      ...
cd338027297f   2 months ago   ARG DB_PASSWORD=example_password    0B        ...
Docker परिचय

Summary

उपयोग Dockerfile instruction
केवल build के दौरान एक्सेस होने वाला variable बनाएँ ARG <name>=<value>
एक variable बनाएँ ENV <name>=<value>

उपयोग Shell Command
docker build में ARG ओवरराइड करें docker build --build-arg <name>=<value>
docker run में ENV ओवरराइड करें docker run --env <name>=<value> <image-name>
इमेज बनाने में उपयोग हुई instructions देखें docker history <image-name>
Docker परिचय

अभ्यास करते हैं!

Docker परिचय

Preparing Video For Download...