Dengan perkembangan teknologi pengkomputeran awan, Dockerization telah menjadi semakin popular. Dalam proses Dockerization, PHP juga memainkan peranan penting. Dalam artikel ini, kami akan meneroka cara melaksanakan kontena Docker menggunakan PHP.
Mula-mula, kita perlu memasang Docker dan Docker Compose untuk membina kontena PHP yang kita perlukan dalam persekitaran setempat dengan cepat. Jika anda belum tahu Docker dan Docker Compose, anda boleh merujuk kepada dokumentasi rasmi untuk belajar dahulu.
Langkah seterusnya ialah menulis Fail Docker, di sinilah kita mentakrifkan persekitaran kontena. Di sana anda boleh menentukan imej asas yang diperlukan, memasang pakej yang diperlukan, dan menjalankan sebarang skrip init. Berikut ialah contoh fail Docker yang mudah:
FROM php:7.4-apache RUN apt-get update && apt-get install -y git libzip-dev && docker-php-ext-install zip && docker-php-ext-enable zip && rm -rf /var/lib/apt/lists/* WORKDIR /var/www/html COPY . . RUN chown -R www-data:www-data /var/www/html EXPOSE 80
Fail Docker di atas menggunakan imej PHP:7.4-apache rasmi dan memasang pakej Git dan libzip-dev. Kemudian kami memasang sambungan zip untuk PHP dan membolehkan sambungan itu. Akhir sekali salin keseluruhan aplikasi ke dalam bekas dan pastikan kebenaran folder ditetapkan dengan betul. Akhir sekali, kami mendedahkan port 80 bekas melalui arahan EXPOSE. Jika anda mempunyai port lain yang perlu didedahkan, anda juga boleh menentukannya di sini.
Dengan Dockerfile, kami boleh membina bekas PHP dalam persekitaran setempat. Tetapi biasanya kami memerlukan lebih banyak bekas untuk membina keseluruhan aplikasi Pada masa ini, kami boleh menggunakan Docker Compose untuk mengurus berbilang bekas. Berikut ialah contoh fail Docker Compose yang mudah:
version: '3.3' services: web: build: context: . dockerfile: Dockerfile ports: - "8000:80" volumes: - .:/var/www/html depends_on: - mysql mysql: image: mysql:5.7 environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: "app_db" MYSQL_USER: "app_user" MYSQL_PASSWORD: "app_password" volumes: - db_data:/var/lib/mysql volumes: db_data:
Fail Docker Compose di atas mentakrifkan dua perkhidmatan: web dan mysql. Perkhidmatan web menggunakan Dockerfile yang kami tulis sebelum ini untuk membina bekas dan memetakan port kontena 80 ke port tempatan 8000 supaya kami boleh mengakses kontena secara tempatan. Selain itu, kami memetakan direktori semasa ke direktori /var/www/html dalam bekas supaya bekas boleh mengakses kod aplikasi kami. Akhir sekali, perkhidmatan web juga bergantung kepada perkhidmatan mysql, iaitu jika perkhidmatan mysql tidak dimulakan, perkhidmatan web tidak boleh dimulakan.
Perkhidmatan mysql menggunakan imej mysql:5.7 rasmi, dan pembolehubah persekitaran ditentukan untuk menetapkan kata laluan akar dan kata laluan akaun pangkalan data. Selain itu, kami menggunakan volum untuk mengekalkan data mysql.
Dengan fail Dockerfile dan Docker Compose, kami boleh membina dan memulakan bekas. Untuk membina bekas, pergi ke direktori di mana fail Docker Compose terletak di terminal dan jalankan arahan berikut:
docker-compose build
Perintah ini akan membina semua bekas aplikasi berdasarkan fail Docker Compose, termasuk bekas web dan mysql.
Seterusnya, jalankan arahan berikut untuk memulakan aplikasi:
docker-compose up
Ini akan memulakan semua bekas dan menyambungkannya bersama. Kami boleh mengakses aplikasi kami dengan memasukkan http://localhost:8000 dalam pelayar.
Di atas ialah langkah asas untuk melaksanakan kontena Docker menggunakan PHP. Pendekatan ini ialah cara yang mudah untuk menjadikan penggunaan dan penyelenggaraan aplikasi lebih cekap. Melalui Docker, kami boleh bertukar dengan cepat daripada persekitaran pembangunan kepada persekitaran pengeluaran, sambil memastikan ketekalan aplikasi dalam persekitaran yang berbeza. Jika perlu, ia boleh diubah dan disesuaikan untuk memenuhi keperluan aplikasi anda. Sudah tentu, Docker juga merupakan alat yang besar, yang memerlukan kita mempunyai pemahaman dan penguasaan yang mencukupi semasa menggunakannya.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kontena Docker menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!