Podman Parikshan
Podman parikshan server par scripts/podman_testing par sthit scripts ko copy aur execute karein.
Prarambhik Setup aur Prabandhan
copy.docker.duplistatus.local: Podman mein Docker image ko sthaniya Docker daemon se copy karta hai (sthaniya parikshan ke liye).copy.docker.duplistatus.remote: Podman mein doorasth vikas server se Docker image ko copy karta hai (SSH access ki avashyakta hai).- Vikas server par iska upyog karke image banayein:
docker build . -t wsj-br/duplistatus:devel
- Vikas server par iska upyog karke image banayein:
start.duplistatus: Container ko rootless mode mein shuru karta hai.pod.testing: Podman pod ke andar container ka parikshan karta hai (root visheshadhikaron ke saath).stop.duplistatus: Pod ko rokta hai aur container ko hatata hai.clean.duplistatus: Containers ko rokta hai, pods ko hatata hai, aur purani images ko saaf karta hai.
DNS Configuration
Scripts host pranali se DNS settings ko svatah pahchan aur configure karte hain:
- Svachalit Pahchan: DNS server aur search domains nikalne ke liye
resolvectl status(systemd-resolved) ka upyog karta hai - Fallback Support: Non-systemd pranaliyon par
/etc/resolv.confko parse karne ke liye fallback karta hai - Smart Filtering: localhost addresses aur IPv6 nameservers ko svatah filter karta hai
- Ke saath kaam karta hai:
- Tailscale MagicDNS (100.100.100.100)
- Corporate DNS server
- Standard network configurations
- Anukoolit DNS setups
Koi manual DNS configuration ki avashyakta nahin hai - scripts ise svatah handle karte hain!
Monitoring aur Swasthya Jaanch
check.duplistatus: Logs, connectivity, aur application health ki jaanch karta hai.
Debugging Commands
logs.duplistatus: Pod ke logs dikhata hai.exec.shell.duplistatus: Container mein ek shell kholta hai.restart.duplistatus: Pod ko rokta hai, container ko hatata hai, image ko copy karta hai, container banata hai, aur pod shuru karta hai.
Upyog Workflow
Vikas Server
Vikas server par Docker image banayein:
docker build . -t wsj-br/duplistatus:devel
Podman Server
- Docker image ko transfer karen:
./copy.docker.duplistatus.localka upyog karen yadi Docker aur Podman ek hi machine par hain./copy.docker.duplistatus.remoteka upyog karen yadi remote development server se copy kar rahe hain (jiske liye.envfile meinREMOTE_USERaurREMOTE_HOSTki avashyakta hoti hai)
./start.duplistatuske sath container shuru karen (standalone, rootless)- Ya pod mode mein parikshan ke liye
./pod.testingka upyog karein (root ke saath)
- Ya pod mode mein parikshan ke liye
./check.duplistatusaur./logs.duplistatuske saath monitor karein- Ho jaane par
./stop.duplistatuske saath rokein - Pura restart cycle (stop, copy image, start) ke liye
./restart.duplistatuska upyog karein- Note: Yah script abhi
copy.docker.duplistatuska sandarbh deta hai jise.localya.remotevariant se badla jana chahiye
- Note: Yah script abhi
- Container, pod, aur purani images ko hatane ke liye
./clean.duplistatuska upyog karen
Application ka parikshan
Yadi aap Podman server ko usi machine par chala rahe hain, to http://localhost:9666 ka upyog karen.
Yadi aap kisi anya server par hain, to URL is prakar prapt karen:
echo "http://$(hostname -I | awk '{print $1}'):9666"
Mahatvapurna Suchnaen
Podman Pod Networking
Podman pods mein chalate samay, application ko avashyakta hoti hai:
- Spasht DNS configuration (jise
pod.testingscript dwara svatah sanbalit kiya jata hai) - Sabhi interfaces par Port binding (
0.0.0.0:9666)
Scripts in avashyaktaon ko svatah sanbalit karte hain - kisi manual configuration ki avashyakta nahin hai.
Rootless vs Root Mode
- Standalone mode (
start.duplistatus):--userns=keep-idke saath rootless chalta hai - Pod mode (
pod.testing): Parikshan ke uddeshyon ke liye pod ke andar root ke roop mein chalta hai
Donon modes svatah DNS detection ke saath sahi dhang se kaam karte hain.
Environment Configuration
copy.docker.duplistatus.local aur copy.docker.duplistatus.remote donon ko scripts/podman_testing directory mein .env file ki avashyakta hoti hai:
Local copying ke liye (copy.docker.duplistatus.local):
IMAGE=wsj-br/duplistatus:devel
Remote copying ke liye (copy.docker.duplistatus.remote):
IMAGE=wsj-br/duplistatus:devel
REMOTE_USER=your_username
REMOTE_HOST=your_hostname
start.duplistatus script ko .env file ki avashyakta hoti hai jisme kam se kam IMAGE variable ho:
IMAGE=wsj-br/duplistatus:devel
Note: Script ka truti sandesh REMOTE_USER aur REMOTE_HOST ka ullekh karta hai, lekin start.duplistatus dwara vastav mein inka upyog nahin kiya jata hai - keval IMAGE ki avashyakta hoti hai.