Docker container එකක් නිතරම restart වෙලා පවතිනවානම්, docker exec භාවිතා කරලා එයට ඇතුළු වෙන්න බැරෑරුවක් ඇතිවේ. එම container එක කිසිදාකත් "running" තත්ත්වයට නොපැමිණීම නිසා, පරීක්ෂා කිරීම ඉතා අපහසු වෙනවා.
මෙවැනි අවස්ථාවලදී Docker Compose එකේම පහසු ක්රමයක් භාවිතා කරලා, ඒම සේවාවට අදාළ නව container එකක් තැනීමේදී entrypoint එක shell (sh) එකක් ලෙස පවරා ගත හැක. ඒ සඳහා පහත කමාන්ඩ් එක භාවිතා කරන්න:
docker compose run --rm --entrypoint sh <service-name>
උදාහරණයක් ලෙස, rusikapi නම් සේවාවක් තිබේ නම්, පහත පරිදි ක්රියාත්මක කරන්න:
docker compose run --rm --entrypoint sh rusikapi
මෙම කමාන්ඩ් එක නව container එකක් සකස් කරන අතර, ඒක image, environment variables, volumes, networks, service configuration සියල්ලම මූලික සේවාව සමඟම එකතු කරයි. නමුත් ඇප් එක ඇරඹීමට වෙනුවට, interactive shell එකක් විවෘත කරයි. ඒ නිසා container එකේ පරිසරය, ෆයිල් සංග්රහය, database සම්බන්ධතා වගේ ගැටළු තක්සේරු කරගන්න හැකියාව ලැබේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාජය, විශේෂයෙන්ම නවකයින්, විශ්වවිද්යාල සිසුන්, සහ IT ව්යාපාර සඳහා මේ ක්රමය විශාල ප්රයෝජන ගෙනදෙයි:
- වේගවත් පරීක්ෂණය: Restart loop වලට ගොඩක් වේලාවක් ගත නොකර, තත්කාලික shell එකක් මඟින් ගැටලුව තක්සේරු කළ හැක.
- ඉගෙනුම් අවස්ථා: Docker Compose ගොනු, environment variables, volume mappings වගේ concepts අත්හදා බැලීමට ඉඩ සලසයි.
- ව්යාපාරික වාසි: Production පරිසරයේ downtime අඩු කර, සේවා නඩත්තු කාලය කෙටි කරයි.
- ආරක්ෂිත පරීක්ෂණ: ඇප් එක ඇරඹීමට පෙර, database connectivity, Prisma migrations වැනි ක්රියාකාරකම් අත්හදා බැලීමට හැකිවේ.
මෙම ක්රමය Docker Compose භාවිතා කරන ඕනෑම developer කෙනෙකුට අත්යවශ්ය කුසලතාවක් බවට පත්වේ. නව පරීක්ෂණයක් හෝ production ගැටලුවක් හමුවේ, docker compose run --rm --entrypoint sh යන කමාන්ඩ් එක මත පදනම්ව ඉක්මනින් විසඳුමක් සොයාගත හැක.
අවසන් වශයෙන්, Docker container එකේ restart loop ගැටලුවක් මුහුණ දුන විට, නව shell සමඟ temporary container එකක් ධාවනය කිරීම, ඔබේ පරීක්ෂණ කාර්යයන් සරල කරයි. මෙය Docker Compose භාවිතා කරන සෑම developer කෙනෙකුටම අත්හදා බැලිය යුතු ප්රායෝගික උපකාරකයක් වේ.