PHP एप्लिकेशन को Docker में चलाना
PHP + Nginx के लिए Docker इमेज बनाएँ और Docker Compose से उसका प्रबंधन करें
PHP एप्लिकेशन को Docker में चलाना, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
PHP के लिए Docker का उपयोग क्यों करें
Docker आपके एप्लिकेशन को उसकी निर्भरताओं के साथ एक पोर्टेबल कंटेनर इमेज में पैकेज करता है। एक ही इमेज विकास, CI और उत्पादन में एक समान चलती है — इससे "मेरी मशीन पर तो चलता है" जैसी समस्याएँ समाप्त हो जाती हैं।
बुनियादी PHP Dockerfile
PHP + Nginx एप्लिकेशन के लिए न्यूनतम Dockerfile।
# Dockerfile
FROM php:8.3-fpm-alpine
# Install extensions
RUN docker-php-ext-install pdo pdo_mysql opcache
# Install Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader
COPY . .
RUN chown -R www-data:www-data /app/storage /app/bootstrap/cacheबहु-चरणीय बिल्ड
अंतिम इमेज को छोटा रखने के लिए बहु-चरणीय बिल्ड का उपयोग करें — एक चरण में बिल्ड टूल इंस्टॉल करें और केवल आर्टिफैक्ट को अंतिम इमेज में कॉपी करें।
# Stage 1: builder
FROM composer:2 AS builder
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader
# Stage 2: runtime
FROM php:8.3-fpm-alpine
WORKDIR /app
COPY --from=builder /app/vendor ./vendor
COPY . .docker-compose.yml
Docker Compose के साथ कई सेवाओं (PHP-FPM, Nginx, MySQL, Redis) का संयोजन करें।
# docker-compose.yml
services:
app:
build: .
volumes:
- .:/app
nginx:
image: nginx:alpine
ports: ["80:80"]
volumes:
- .:/app
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
mysql:
image: mysql:8
environment:
MYSQL_DATABASE: myapp
MYSQL_ROOT_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
redis:
image: redis:alpine
volumes:
db_data:Nginx कंटेनर कॉन्फ़िगरेशन
PHP-FPM अनुरोधों को प्रॉक्सी करने के लिए कस्टम Nginx कॉन्फ़िगरेशन माउंट करें।
# docker/nginx.conf
server {
listen 80;
root /app/public;
index index.php;
location / { try_files $uri /index.php?$query_string; }
location ~ \.php$ {
fastcgi_pass app:9000; # service name from docker-compose
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}पर्यावरण वेरिएबल
पर्यावरण वेरिएबल को कंटेनर में भेजें — सीक्रेट को कभी भी इमेज में शामिल न करें।
# docker-compose.yml:
services:
app:
env_file: .env
# or explicit:
environment:
- APP_ENV=production
- DB_HOST=mysqlLaravel Artisan कमांड
कंटेनर के अंदर Artisan कमांड चलाएँ।
$ docker compose exec app php artisan migrate
$ docker compose exec app php artisan config:cache
$ docker compose exec app php artisan queue:workस्वास्थ्य जाँच
स्वास्थ्य जाँच जोड़ें, ताकि ऑर्केस्ट्रेटर (Kubernetes, ECS) जान सकें कि कंटेनर कब तैयार है।
# Dockerfile:
HEALTHCHECK --interval=30s --timeout=5s \
CMD curl -f http://localhost/health || exit 1इमेज बनाना और पुश करना
अपनी इमेज बनाएँ और उसे किसी रजिस्ट्री (Docker Hub, ECR, GHCR) में पुश करें।
$ docker build -t myorg/myapp:1.0.0 .
$ docker push myorg/myapp:1.0.0Kubernetes डिप्लॉयमेंट
Kubernetes में अपनी इमेज का उपयोग करके Deployment और Service संसाधन परिभाषित करें। kubectl set image से नए संस्करण जारी करें या YAML को अपडेट करके लागू करें।
उत्पादन सुदृढ़ीकरण
उत्पादन में Docker के तरीके: रूट के अलावा किसी उपयोगकर्ता का उपयोग करें, रूट फ़ाइल सिस्टम को केवल-पठन रखें, न्यूनतम बेस इमेज (Alpine) का उपयोग करें, विकास संबंधी निर्भरताएँ शामिल न करें, इमेज टैग को पिन करें और docker scout से CVE की जाँच करें।
सारांश
PHP-FPM + Composer के लिए Dockerfile बनाएँ। Nginx, MySQL और Redis सेवाओं के साथ स्थानीय विकास के लिए docker-compose का उपयोग करें। उत्पादन में बहु-चरणीय बिल्ड का उपयोग करें, पर्यावरण वेरिएबल डालें और Kubernetes या ECS के माध्यम से चलाएँ।
त्वरित जाँच
बहु-चरणीय Docker बिल्ड का मुख्य लाभ क्या है?
एआई शिक्षक के साथ PHP सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 49
- पाठ
- 195
अक्सर पूछे जाने वाले प्रश्न
क्या “PHP एप्लिकेशन को Docker में चलाना” पाठ निःशुल्क है?
हाँ—“PHP एप्लिकेशन को Docker में चलाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“PHP एप्लिकेशन को Docker में चलाना” में मैं क्या सीखूँगा?
PHP + Nginx के लिए Docker इमेज बनाएँ और Docker Compose से उसका प्रबंधन करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“PHP एप्लिकेशन को Docker में चलाना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Nginx और PHP-FPM कॉन्फ़िगरेशन
- परिवेश चर और .env फ़ाइलें
- GitHub Actions से परिनियोजन
- PHP एप्लिकेशन को Docker में चलाना