Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan teknologi kontena untuk pengurusan persekitaran dalam pembangunan PHP
Dalam pembangunan PHP moden, penggunaan teknologi kontena untuk pengurusan alam sekitar telah menjadi semakin biasa. Artikel ini akan memperkenalkan cara menggunakan teknologi kontena Docker untuk mencipta, mengkonfigurasi dan mengurus persekitaran pembangunan projek PHP.
1. Mengapa menggunakan teknologi kontena untuk pengurusan persekitaran
Dalam pembangunan PHP tradisional, untuk membina persekitaran yang sesuai untuk projek semasa, sejumlah besar konfigurasi dan pemasangan diperlukan. Jika konfigurasi ini dibungkus secara seragam, mudah alih, konsisten dan kebolehpercayaan semasa pembangunan boleh dipertingkatkan. Dalam kes ini, menggunakan teknologi kontena menjadi pilihan yang tidak dapat dielakkan.
Secara khusus, faedah menggunakan teknologi kontena adalah seperti berikut:
2 Gunakan Docker untuk mencipta persekitaran pembangunan PHP
Docker ialah salah satu teknologi kontena yang paling popular pada masa ini, jadi artikel ini akan menggunakan Docker untuk mencipta persekitaran pembangunan PHP.
Mula-mula, anda perlu memasang Docker pada persekitaran setempat anda. Anda boleh memuat turun dan memasang versi Docker yang sesuai untuk mesin anda dari tapak web rasmi.
Buat fail bernama Dockerfile dalam direktori akar projek dan tulis kandungan fail. Dockerfile ialah fail skrip yang digunakan oleh Docker untuk mencipta imej. Kandungan khusus Fail Docker adalah seperti berikut:
FROM php:7.4-fpm # Install dependencies RUN apt-get update && apt-get install -y git libzip-dev unzip # Install PHP extensions RUN docker-php-ext-install zip pdo_mysql # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Set working directory WORKDIR /app
Maksud Fail Docker ini adalah untuk membina imej baharu daripada imej asas PHP sedia ada. Kemudian pasang kebergantungan yang diperlukan seperti git, libzip dan unzip pasang sambungan PHP zip dan pdo_mysql dan akhirnya pasang Komposer;
Perhatikan bahawa arahan COPY digunakan untuk menyalin fail daripada imej komposer ke imej baharu, yang memastikan alat Komposer boleh digunakan secara normal dalam imej baharu.
Seterusnya, anda perlu menggunakan Dockerfile untuk membina imej Docker. Masukkan direktori akar projek dalam terminal, dan kemudian jalankan arahan:
docker build -t project-name .
di mana nama-projek ialah nama imej Docker yang akan dibuat, dan "." yang terakhir menunjukkan direktori di mana fail Dockerfile berada. Perintah ini akan mencipta imej Docker baharu untuk projek itu.
Gunakan perintah berikut untuk memulakan bekas imej baru:
docker run -p 8000:8000 -v "$(pwd)":/app -it project-namee
where "8000" adalah nombor port yang akan didedahkan oleh bekas. port 8000 hos. Selain itu, parameter -v memetakan direktori semasa ke direktori /app dalam bekas supaya kod PHP boleh dijalankan dalam bekas. Akhir sekali, "nama projek" mewakili nama imej Docker untuk digunakan.
3 Gunakan Docker Compose untuk mengurus projek PHP yang kompleks
Untuk projek PHP yang kompleks, anda mungkin perlu menggunakan berbilang perkhidmatan (seperti storan data, cache, pelayan web, dll.). Pada masa ini, anda boleh menggunakan Docker Compose untuk mengurus perkhidmatan ini.
Docker Compose ialah alat untuk Docker yang boleh digunakan untuk mengurus berbilang bekas Docker. Menggunakan Docker Compose, anda boleh mencipta dan mengkonfigurasi berbilang bekas, memautkannya bersama-sama dan mengendalikan beberapa tugas penggunaan biasa (seperti volum data dan pemetaan port, dsb.).
Docker Compose bergantung pada fail konfigurasi bernama docker-compose.yml. Cipta fail ini dalam direktori akar projek PHP anda dan tentukan bekas yang akan dibuat di dalamnya. Berikut ialah contoh:
version: '3.4' services: php: build: . ports: - "8000:8000" volumes: - .:/app depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: app MYSQL_USER: app MYSQL_PASSWORD: secret volumes: - db_data:/var/lib/mysql volumes: db_data:
Fail ini mentakrifkan dua perkhidmatan: php dan db.
Perkhidmatan php menggunakan Dockerfile yang dibuat sebelum ini untuk membina imej baharu, kemudian memetakan port 8000 kontena ke port 8000 hos, dan memetakan direktori semasa ke direktori /app dalam bekas. Perkhidmatan juga bergantung kepada perkhidmatan db.
Perkhidmatan db menggunakan imej rasmi MySQL 5.7 dan mentakrifkan beberapa pembolehubah persekitaran untuk menetapkan kata laluan akar MySQL, nama pangkalan data, pengguna dan maklumat lain. Jumlah data juga akan dibuat dalam bekas MySQL sebagai storan berterusan.
Perhatikan bahawa fail ini juga mentakrifkan volum bernama db_data. Jilid digunakan untuk menyimpan data dalam bekas supaya ia boleh dikongsi antara bekas yang berbeza. Jilid juga menyediakan beberapa penyelesaian storan berterusan.
Selepas menulis fail docker-compose.yml, anda boleh menggunakan arahan berikut untuk mencipta dan memulakan semua bekas yang ditakrifkan dalam projek PHP:
docker-compose up -d
Arahan ini akan menjalankan semua perkhidmatan yang ditentukan di latar belakang .
Anda boleh menyemak semua bekas yang dilaksanakan dengan menjalankan arahan berikut:
docker ps
Apabila anda perlu menghentikan semua perkhidmatan dan bekas, anda boleh menjalankan arahan berikut:
docker-compose down
Perintah ini akan berhenti semua bekas berjalan dan alih keluar semua perkhidmatan. Jika anda perlu menghentikan dan memadam perkhidmatan tertentu, anda boleh menjalankan arahan berikut:
docker-compose stop service-name docker-compose rm service-name
di mana nama perkhidmatan ialah nama perkhidmatan yang akan dihentikan dan dipadamkan.
Artikel ini memperkenalkan konsep asas dan langkah menggunakan Docker untuk mencipta dan mengurus persekitaran pembangunan PHP. Menggunakan teknologi kontena boleh meningkatkan ketekalan, mudah alih dan kebolehpercayaan proses pembangunan dan memainkan peranan penting dalam pembangunan projek PHP.
Atas ialah kandungan terperinci Cara menggunakan teknologi kontena untuk pengurusan persekitaran dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!