ສ້າງຄອນເທນເນີດ້ວຍ Buildah

Buildah ແມ່ນເຄື່ອງມືທີ່ຊ່ວຍໃນການສ້າງຮູບພາບຄອນເທນເນີ OCI. ທ່ານສາມາດສ້າງຮູບພາບເລີ່ມຕົ້ນແຕ່ຕົ້ນ, ຈາກຄອນເທນເນີທີ່ດຶງມາຈາກຄັງເກັບ (registry), ຫຼື ໂດຍໃຊ້ Dockerfile.

ເພື່ອໃຊ້ Buildah ໃນ Fedora IoT ທ່ານຈະຕ້ອງຕິດຕັ້ງແພັກເກດເສີມ (layered packages):

$ sudo rpm-ostree install buildah

ໂດຍທົ່ວໄປແລ້ວ Buildah ມັກຖືກນໍາໃຊ້ໃນສະພາບແວດລ້ອມຂອງນັກພັດທະນາ ແລະ ຄອນເທນເນີທີ່ໄດ້ຈະຖືກອັບໂຫຼດໄປຍັງຄັງເກັບເພື່ອໃຊ້ໃນອຸປະກອນຕ່າງໆ.

ຄຳສັ່ງສຳລັບການສ້າງຄອນເທນເນີຈາກຮູບພາບພື້ນຖານແມ່ນຄ້າຍຄືກັບຄຳສັ່ງໃນ Dockerfile. ຂັ້ນຕອນທຳອິດແມ່ນການດຶງຮູບພາບພື້ນຖານ ແລະ ສ້າງຄອນເທນເນີເຮັດວຽກ:

$ buildah from fedora
fedora-working-container

ເພີ່ມແພັກເກດເຂົ້າໃນຄອນເທນເນີເຮັດວຽກ:

$ buildah run fedora-working-container dnf install httpd -y

ສ້າງໄດເຣັກທໍຣີເຮັດວຽກພ້ອມກັບເນື້ອຫາບາງຢ່າງສຳລັບເວັບເຊີເວີ:

$ mkdir demo-httpd && cd demo-httpd && echo 'sample container' > index.html

ສຳເນົາໄຟລ໌ພາຍໃນເຄື່ອງເຂົ້າໄປໃນຄອນເທນເນີເຮັດວຽກ:

$ buildah copy fedora-working-container index.html /var/www/html/index.html

ກຳນົດຈຸດເລີ່ມຕົ້ນ (entrypoint) ຂອງຄອນເທນເນີເພື່ອເລີ່ມການເຮັດວຽກຂອງແອັບພລິເຄຊັນ:

$ buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" fedora-working-container

ເມື່ອກຳນົດຄ່າແລ້ວ, ໃຫ້ບັນທຶກຮູບພາບ:

$ buildah commit fedora-working-container fedora-myhttpd

ທ່ານສາມາດສະແດງລາຍຊື່ຮູບພາບທີ່ມີຢູ່ໃນເຄື່ອງ:

$ buildah images

ຮູບພາບຂອງ Buildah ແມ່ນອັນດຽວກັນກັບຮູບພາບຂອງ Podman. ທ່ານສາມາດລັນຄອນເທນເນີພາຍໃນເຄື່ອງໄດ້ເລີຍດ້ວຍ Podman:

$ podman run fedora-myhttpd

ເພື່ອເຮັດໃຫ້ຮູບພາບສາມາດໃຊ້ງານໄດ້ໃນອຸປະກອນອື່ນໆ, ໃຫ້ສົ່ງ (push) ຮູບພາບໄປຍັງຄັງເກັບ. ຮູບພາບເລີ່ມຕົ້ນຈະມີແທັກແມ່ນ 'latest'. ໃຊ້ buildah tag ເພື່ອເພີ່ມແທັກອື່ນໆໃສ່ຮູບພາບກ່ອນທີ່ຈະສົ່ງໄປຍັງຄັງເກັບ.

ເພື່ອສົ່ງຮູບພາບໄປຍັງຄັງເກັບ Docker ພາຍໃນເຄື່ອງ:

$ buildah push --tls-verify=false fedora-myhttpd docker://localhost:5000/testuser/fedora-myhttpd:latest

ເພື່ອສົ່ງໄປຍັງຄັງເກັບທາງໄກ (remote registry) ໃຫ້ລະບຸ URL ທີ່ຖືກຕ້ອງ ແລະ ຂໍ້ມູນການເຂົ້າລະບົບທີ່ຈຳເປັນ:

$ buildah push --creds testuser:5bbb9990-1234-1234-1234-aaa80066887c fedora-myhttpd docker://testuser/fedora-myhttpd

ສາມາດໃຊ້ Skopeo ເພື່ອກວດສອບຜົນໄດ້ຮັບ:

$ skopeo inspect --tls-verify=false docker://localhost:5000/testuser/fedora-myhttpd:latest

ທົດສອບຄວາມສາມາດໃນການເຄື່ອນຍ້າຍຂອງຄອນເທນເນີດ້ວຍຄຳສັ່ງ docker pull, podman pull ຫຼື buildah from.

ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການໃຊ້ Buildah ຈາກ: