บทความนี้อธิบายการสร้างไฟล์ Container โดยใช้โปรแกรม Apptainer หัวข้อต่อไปนี้ให้ข้อมูลสรุปเนื้อหาของบทความ เพื่อให้ผู้อ่านสามารถระบุส่วนที่ต้องการอ่านได้อย่างรวดเร็ว
การสร้างไฟล์ Container ด้วยการสร้าง Sandbox directory
การสร้างไฟล์ Container โดยใช้โปรแกรม Apptainer มีด้วยกันหลายวิธี แต่วิธีที่ง่ายและได้รับความนิยมคือการสร้างไฟล์ Container ด้วยการสร้าง Sandbox directory เพื่อให้สามารถเข้าใจได้ง่ายมากขึ้น ในที่นี้จะยกตัวอย่างการดาว์นโหลดไฟล์ Container ของ Tensorflow-gpu จากนั้นติดตั้งโปรแกรม OpenCV เพิ่มเติม ใน Sandbox directory ที่สร้างจากไฟล์ Container ของ Tensorflow-gpu เพื่อนำมาใช้ในการสร้างไฟล์ Container ไฟล์ใหม่ที่มีการติดตั้งโปรแกรม OpenCV เพิ่มเติมแล้ว ซึ่งสามารถทำตามขั้นตอนดังต่อไปนี้
ดาว์นโหลดไฟล์ Container ของ Tensorflow-gpu เวอร์ชั่น 2.17.0
apptainer pull original_tensorflow-gpu.sif docker://tensorflow/tensorflow:2.17.0-gpu
สร้าง Sandbox จากไฟล์ Container ของ Tensorflow-gpu เวอร์ชั่น 2.17.0
apptainer build --sandbox tensorflow_sandbox original_tensorflow-gpu.sif
เข้าไปใน Sandbox เพื่อติดตั้งโปรแกรม OpenCV
apptainer shell --writable tensorflow_sandbox
ติดตั้งโปรแกรม OpenCV ด้วยคำสั่งต่อไปนี้
apt-get -y update apt-get -y install libgl-dev pip install --upgrade pip pip install opencv-python
เมื่อติดตั้งโปรแกรม OpenCV เสร็จเรียบร้อยแล้ว ให้ใช้คำสั่ง
exit
เพื่อออกจาก Sandbox
exit
สร้างไฟล์ Container จาก Sandbox ที่มีการติดตั้งโปรแกรม OpenCV เพิ่มเติมแล้ว
apptainer build modified_tensorflow-gpu.sif tensorflow_sandbox
การสร้างไฟล์ Container จากไฟล์ Definition
นอกจากการสร้างไฟล์ Container แบบ build --sandbox
แล้ว ยังสามารถสร้างไฟล์ Container จากไฟล์ Definition ได้ด้วย ในที่นี้จะยกตัวอย่างการติดตั้งโปรแกรม OpenCV เพิ่มใน Tensorflow 2.2.1-gpu image จาก Docker hub โดยใช้ไฟล์ Definition ซึ่งสามารถทำตามขั้นตอนดังต่อไปนี้
สร้างไฟล์ Definition (addOpenCV.def)
Bootstrap: docker From: tensorflow/tensorflow:2.17.0-gpu %post apt-get -y update apt-get -y install libgl-dev pip install --upgrade pip pip install opencv-python
สร้างไฟล์ Container จากไฟล์ addOpenCV.def
apptainer build tensorflow-gpu_OpenCV.sif addOpenCV.def