Menu

Showing posts with label argument. Show all posts
Showing posts with label argument. Show all posts

Friday, June 28, 2019

[Docker] วิธีการใช้ Git Tag เป็น Version ของ Code ใน Docker Image
[Docker] How to Use Git Tag as Version of Code in Docker Image

ในกรณีที่เราต้องการใช้ GIT Tag เพื่อแสดงเป็น Version บนหน้าเว็บ มีวิธีทำดังนี้

ขั้นแรก แก้ไข Dockerfile โดยเพิ่มบรรทัดตามด้านล่างนี้
ARG GIT_TAG=12345
ARG MAIN_FILE
RUN sed -i -e "s/version:\"0\.0\.0\"/version:\"${GIT_TAG}\"/" public/$MAIN_FILE
  • บรรทัดแรก เป็นการประกาศว่า เราจะรับตัวแปรชื่อ GIT_TAG ที่จะถูกส่งเข้ามาทาง build argument ตอนสั่ง docker build ซึ่งถ้าไม่มีค่าอะไรส่งเข้ามาเลย ให้ตั้งค่าตั้งต้นเป็น 12345
  • บรรทัดที่สอง เป็นการประกาศว่า เราจะรับตัวแปรชื่อ MAIN_FILE ที่จะถูกส่งเข้ามาทาง build argument
  • บรรทัดที่สุดท้าย เป็นการรันคำสั่งเพื่อ replace ค่า 0.0.0 ในไฟล์ MAIN_FILE ด้วยค่าของ GIT_TAG

Monday, June 24, 2019

[Docker] วิธีการส่งผ่านค่า Build Argument และตั้งค่าเป็น Environment Variable
[Docker] How to Pass Build Argument and Set as Environment Variable

สมมติว่า var_name เป็น argument ที่เราต้องการส่งเข้าไป เพื่อตั้งค่าเป็น Environment Variable

ใน Dockerfile ให้เพิ่มบรรทัดดังนี้
ARG var_name
ENV env_var_name=$var_name
บรรทัดแรกเป็นการรับค่า var_name ที่เป็น build argument
บรรทัดที่ 2 เป็นการตั้งค่า Environment Variable โดยให้ชื่อว่า env_var_name และมีค่าตาม var_name

หลังจากแก้ไข Dockerfile แล้ว เรามีวิธีการส่งค่า build argument หลายแบบดังนี้

แบบที่ 1 ส่งชื่อตัวแปรพร้อมค่าของตัวแปรที่เรากำหนดเอง
docker build --build-arg var_name=VALUE [--build-arg var_name2=VALUE2 ...] (...)

แบบที่ 2 ส่งชื่อตัวแปรพร้อมค่าของตัวแปรจาก environment variable ปัจจุบัน
docker build --build-arg var_name=${VARIABLE_NAME} (...)
โดยที่ VARIABLE_NAME เป็นชื่อของ environment variable

แบบที่ 3 ส่งชื่อตัวแปรที่เป็นชื่อเดียวกันกับ environment variable ซึ่งค่าของตัวแปรนี้จะถูกตั้งตามค่า environment variable ที่ชื่อเดียวกันโดยอัตโนมัติ
docker build --build-arg var_name (...)