บทความนี้อธิบายการสร้างไฟล์ Container โดยใช้โปรแกรม Apptainer หัวข้อต่อไปนี้ให้ข้อมูลสรุปเนื้อหาของบทความ เพื่อให้ผู้อ่านสามารถระบุส่วนที่ต้องการอ่านได้อย่างรวดเร็ว
การสร้างไฟล์ Container ด้วยการสร้าง Sandbox directory
การสร้างไฟล์ Container โดยใช้โปรแกรม Apptainer มีด้วยกันหลายวิธี แต่วิธีที่ง่ายและได้รับความนิยมคือการสร้างไฟล์ Container ด้วยการสร้าง Sandbox directory เพื่อให้สามารถเข้าใจได้ง่ายมากขึ้น ในที่นี้จะยกตัวอย่างการดาว์นโหลดไฟล์ Container ของ PyTorch จากนั้นติดตั้ง Package เพิ่มเติม ใน Sandbox directory ที่สร้างจากไฟล์ Container ของ PyTorch เพื่อใช้ในการสร้างไฟล์ Container ไฟล์ใหม่ที่มีการติดตั้ง Packages เพิ่มเติมแล้ว ซึ่งสามารถทำตามขั้นตอนดังต่อไปนี้
ดาว์นโหลดไฟล์ Container ที่ต้องการใช้งาน
apptainer pull original_pytorch.sif docker://nvcr.io/nvidia/pytorch:24.05-py3
สร้าง Sandbox จากไฟล์ Container ที่ต้องการใช้งาน
apptainer build --sandbox pytorch_sandbox original_pytorch.sif
เข้าไปใน Sandbox เพื่อติดตั้ง Packages อื่นๆ เพิ่มเติม
apptainer shell --writable pytorch_sandbox
ตรวจสอบ packages ที่มีอยู่ด้วยคำสั่ง
pip list
และติดตั้ง Packages อื่นๆ เพิ่มเติมด้วยคำสั่งpip install package_name
pip list pip install package_name
หากติดตั้ง Packages ต่างเสร็จเรียบร้อยแล้ว ให้ใช้คำสั่ง
exit
เพื่อออกจาก Sandbox
exit
สร้างไฟล์ Container จาก Sandbox ที่ติดตั้ง Packages อื่นๆ เพิ่มเติมแล้ว
apptainer build modified_pytorch.sif pytorch_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.2.1-gpu %post apt-get -y update apt-get -y install libgl-dev pip install --upgrade pip pip install opencv-python
สร้างไฟล์ Container จากไฟล์ addOpenCV.def
singularity build TF_OpenCV.sif addOpenCV.def