Docker ແລະ TimeZone ສິ່ງທີ່ຢ່າເບິ່ງຂ້າມ

xangnam phiasakha
VtCamp
Published in
1 min readMay 19, 2018

ບໍ່ໄດ້ຂຽນມາຊ້ານານ ອັນເນື່ອງຈາກຜູ້ຂຽນກຳລັງພັດທະນາ application ຢຸ້
ແລະໃນການພັດທະນາ application ນີ້ເອງທີ່ເຮັດໃຫ້ເປັນຈຸດເລີ່ມຕົ້ນຂອງບົດຄວາມສັ້ນ ເອົາໄວ້ເຕືອນໃຈຂອງຜູ້ຂຽນ

ສິ່ງທີ່ເກີດຂຶ້ນ

ຜູ້ຂຽນໄດ້ພັດທະນາ service ຂອງແອບຂື້ນມາດ່ວຍ nodejs ຄູຕາຍແລະນຳໄປ run ດ່ວຍ docker ເຊື່ອມຕໍ່ mongodb ດ້ວຍການ link ກັນຕາມປົກກະຕິ. ບັນຫາກໍ່ເກີດຂຶ້ນເມື່ອ service ທີ່ຜູ້ຂຽນພັດທະນາຂຶ້ນມາຕ້ອງໃຊ້
ຂໍ້ມູນ datetime ເມື່ອທຳການ get datetime ມາ ວັນ ແລະ ເວລາກັບຜິດບໍ່ຖືກກັບເວລາຂອງປັດຈຸບັນ ດັງນັ້ນກໍ່ວຸ້ນກັນເລີຍ ປ່ຽນໄປໃຊ້ module
node-datetime ກໍ່ແລ້ວກໍ່ບໍ່ສຳເລັດ ຈຶ່ງໄປເບິ່ງທີ່ docker
ໂດຍການ remote ເຂົ້າໄປເບິ່ງກໍ່ເຈີບັນຫາ ມັນເປັນນຳ timezone ໃນ docker container ນີ້ເອງ.

ວິທີແກ້

ຮູ້ແນວນັ້ນແລ້ວກໍ່ໄປ search ແບບເອົາເປັນເອົາຕາຍເພາະ app ໃກ້ຈະແລ້ວ
ແຕ່ດັນມາຕິດບັນຫານຳ datetime ນິກໍ່ເສຍຊື່ເບີດ (ມຶງມີຊື່ຕອນໃດຫວ່ະ)
ແລະແລ້ວ ສະຫວັນກໍ່ເຫັນໃຈໄປເຈີວິທີແກ້ໄຂ້. ການແກ້ໄຂກໍ່ບໍ່ຍາກຫຼາຍພຽງແຕ່ set timezone ຂອງ docker container ໃຫ້ຄືກັບ docker host ໂດຍກ່ອນຈະ run docker container ກໍ່ add
-v /etc/localtime:/etc/localtime ເປັນອັນຈົບ.

docker run -d \
--name api \
--link mongodb:mongodb \
-p 1000:1000 \
-v "$PWD":/usr/src/app \
-v /etc/localtime:/etc/localtime \
-w /usr/src/app node \
node ./bin/www

ເທົ່ານີ້ກໍ່ສາມາດໃຊ້ຂໍ້ມູນ datetime ໄດ້ຖືກຕ້ອງກັບຄວາມເປັນຈິິງແລ້ວ.

ປລ. ຂຽນຜິດແປເອົາເດີ ຟ້າວ !!!

--

--