ເປັນຫຍັງ Testcontainers withEnv ຈຶ່ງບໍ່ສົ່ງການດຶງຮູບພາບຜ່ານ proxy
ຕັ້ງຄ່າ Docker daemon ສຳລັບການດຶງທີ່ລົ້ມເຫຼວ; ຕົວປ່ຽນ proxy ຂອງ container ຈະໄປຮອດໂປຣແກຣມຫຼັງຈາກສ້າງ container ແລ້ວເທົ່ານັ້ນ.
ຖ້າ Testcontainers ລົ້ມເຫຼວຂະນະດຶງຮູບພາບ, ການຕັ້ງຄ່າ withEnv ຂອງ container ໃນອະນາຄົດບໍ່ສາມາດຊ່ວຍໄດ້. Docker daemon ເປັນຜູ້ດຳເນີນການດາວໂຫຼດຈາກ registry ກ່ອນທີ່ container ຈະມີຢູ່.
| ການດຳເນີນງານທີ່ລົ້ມເຫຼວ | ການຕັ້ງຄ່າ proxy ທີ່ຕ້ອງກວດ |
|---|---|
| ການດຶງຮູບພາບ | Docker daemon ທີ່ການທົດສອບໃຊ້ ແລະ ເສັ້ນທາງຂອງມັນໄປ registry |
| ການດາວໂຫຼດພາຍໃນ container ທີ່ກຳລັງແລ່ນ | ຂໍ້ມູນປ້ອນທີ່ແອັບຮອງຮັບໃນ container ນັ້ນ |
| ການທົດສອບ Java ເຊື່ອມຕໍ່ກັບ Docker ຫຼື ແອັບ | Java client ທີ່ສ້າງການເຊື່ອມຕໍ່ນັ້ນ |
ສຳລັບກໍລະນີທີສອງ, ເພີ່ມຕົວປ່ຽນສະພາບແວດລ້ອມໃສ່ນິຍາມ GenericContainer ທີ່ມີຢູ່:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");ຖ້າການດາວໂຫຼດພາຍໃນ container ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ HTTP endpoint ສາທາລະນະ, ໃຫ້ຕື່ມຄ່າເຫຼົ່ານັ້ນຈາກ ລາຍການ proxy HTTP. ໂປຣແກຣມໃນຮູບພາບຕ້ອງອ່ານຕົວປ່ຽນເຫຼົ່ານັ້ນ. ພວກມັນບໍ່ໄດ້ປ່ຽນ socket ຂອງຖານຂໍ້ມູນໃດໆໃຫ້ເປັນການສັນຈອນ proxy HTTP. endpoint ຍັງຕ້ອງເຂົ້າເຖິງໄດ້ຈາກ container: 127.0.0.1 ຂອງມັນຊີ້ໄປຫາຕົວມັນເອງ.
ສຳລັບກໍລະນີທຳອິດ, ຊອກຫາສະພາບແວດລ້ອມ Docker ທີ່ Testcontainers ໃຊ້ຕົວຈິງ. daemon ທາງໄກ ຫຼື Docker Desktop ອາດເອົາການຕັ້ງຄ່າຈາກແຫຼ່ງອື່ນທີ່ຕ່າງຈາກ dockerd ທ້ອງຖິ່ນ. ຮັກສາບໍລິການທົດສອບທ້ອງຖິ່ນ ແລະ Docker API ໃຫ້ຢູ່ໃນເສັ້ນທາງທີ່ຕັ້ງໃຈໄວ້ ເມື່ອເພີ່ມຄ່າເລີ່ມຕົ້ນ proxy ແບບກວ້າງ.