Docker เบื้องต้น
Tim Sangster
Software Engineer @ DataCamp
สร้างตัวแปรใน Dockerfile
ARG <var_name>=<var_value>
ตัวอย่างเช่น ARG path=/home/repl
วิธีใช้งานใน Dockerfile
$path
ตัวอย่างเช่น COPY /local/path $path
กำหนดเวอร์ชัน 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
FROM ubuntu
ARG project_folder=/projects/pipeline_v3
COPY /local/project/files $project_folder
COPY /local/project/test_files $project_folder/tests
กำหนดตัวแปรในคำสั่ง build
docker build --build-arg project_folder=/repl/pipeline .
ARG ถูกเขียนทับ และไฟล์จะไปอยู่ที่:
COPY /local/project/files /repl/pipeline
COPY /local/project/test_files /repl/pipeline/tests
สร้างตัวแปรใน Dockerfile
ENV <var_name>=<var_value>
ตัวอย่างเช่น ENV DB_USER=pipeline_user
วิธีใช้งานใน Dockerfile หรือขณะรัน
$DB_USER
ตัวอย่างเช่น CMD psql -U $DB_USER
กำหนดไดเรกทอรีสำหรับใช้งานขณะรัน
ENV DATA_DIR=/usr/local/var/postgres
ENV MODE production
กำหนดหรือเปลี่ยนค่าตัวแปรขณะรัน
docker run --env <key>=<value> <image-name>
docker run --env POSTGRES_USER=test_db --env POSTGRES_PASSWORD=test_db postgres
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 ...
| การใช้งาน | คำสั่งใน Dockerfile |
|---|---|
| สร้างตัวแปรที่เข้าถึงได้เฉพาะระหว่าง build | ARG <name>=<value> |
| สร้างตัวแปร | ENV <name>=<value> |
| การใช้งาน | คำสั่ง Shell |
|---|---|
| เขียนทับ ARG ใน docker build | docker build --build-arg <name>=<value> |
| เขียนทับ ENV ใน docker run | docker run --env <name>=<value> <image-name> |
| ดูคำสั่งที่ใช้สร้าง image | docker history <image-name> |
Docker เบื้องต้น