Menggunakan Docker untuk menggunakan projek dalam pembangunan PHP telah menjadi trend yang semakin popular. Docker ialah teknologi kontena popular yang boleh membungkus aplikasi ke dalam bekas, dengan itu menyediakan pembangun dengan persekitaran pembangunan piawai yang boleh menggunakan aplikasi dengan lancar dalam sistem pengendalian dan persekitaran yang berbeza, serta mencapai aplikasi Bina, gunakan dan naik taraf dengan cepat.
Mari ketahui lebih lanjut tentang cara menggunakan Docker untuk menggunakan projek dalam pembangunan PHP.
Langkah 1: Pasang dan konfigurasikan Docker
Pertama, pastikan Docker dipasang pada sistem setempat anda Kaedah pemasangan Docker mungkin berbeza sedikit dalam sistem pengendalian yang berbeza. Selepas pemasangan selesai, gunakan arahan versi docker dalam terminal untuk mengesahkan sama ada pemasangan berjaya.
Inti mengkonfigurasi Docker adalah untuk mencipta Dockerfile, iaitu fail teks yang mengandungi semua arahan untuk mencipta imej Docker. Dalam Dockerfile, kita perlu menentukan persekitaran yang diperlukan untuk pembangunan PHP.
Langkah 2: Tulis Fail Docker
Buat Fail Docker dan letakkannya dalam direktori akar projek.
Dalam fail Docker, kita perlu memasukkan kandungan berikut:
# 基础镜像,Golang alpine 3.7版本 FROM alpine:3.7 # 添加所有php常用库 RUN apk update && apk add --no-cache php7-bcmath php7-ctype php7-curl php7-dom php7-fileinfo php7-ftp php7-gd php7-iconv php7-intl php7-json php7-ldap php7-mbstring php7-mysqli php7-mysqlnd php7-opcache php7-openssl php7-pcntl php7-pdo_mysql php7-pdo_sqlite php7-phar php7-posix php7-session php7-simplexml php7-soap php7-sockets php7-sqlite3 php7-tokenizer php7-xml php7-xmlreader php7-xmlwriter php7-zip php7-zlib # 修改时区 RUN apk add --no-cache tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 在容器中创建目录并设置权限 WORKDIR /var/www/ RUN mkdir -p var/www/html && chown -R nginx:nginx /var/www/html # 开放80端口 EXPOSE 80 # 开始运行PHP-FPM CMD ["php-fpm7", "-F"]
Di atas ialah kandungan fail Dockerfile yang mudah, yang terutamanya merangkumi tiga aspek berikut:
Langkah 3: Jana imej Docker
Gunakan arahan berikut untuk membina imej PHP-FPM:
docker build . -t php-fpm7:latest
Arahan ini akan membina imej secara automatik daripada direktori semasa dan menetapkan label kepada php-fpm7:latest.
Langkah 4: Tulis fail docker-compose.yml
Seterusnya, kita perlu menyediakan fail docker-compose.yml, yang akan menentukan cara aplikasi kita berjalan.
version: '3.1' services: # 定义Nginx服务 nginx: image: nginx:1.13-alpine ports: - '8000:80' volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./code:/var/www/html:ro depends_on: - php # PHP-FPM服务 php: image: php-fpm7:latest volumes: - ./code:/var/www/html:rw - ./php/custom.ini:/usr/local/etc/php/conf.d/custom.ini:ro # MySQL服务 mysql: image: mysql:5.7 ports: - '3306:3306' env_file: - ./mysql/.env volumes: - ./mysql/data:/var/lib/mysql - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
Seperti yang ditunjukkan di atas, kami telah menentukan tiga perkhidmatan: Nginx, PHP dan MySQL Port, konfigurasi, kebergantungan, volum terpasang dan tetapan lain boleh diubah suai mengikut keperluan sebenar anda.
Langkah 5: Mulakan aplikasi
Akhir sekali, kami memulakan aplikasi dengan arahan berikut:
docker-compose up
Arahan ini akan membaca fail docker-compose.yml dan memulakan semua perkhidmatan. Selepas pelaksanaan berjaya, anda boleh melawati http://localhost:8000 melalui penyemak imbas untuk menyemak sama ada penggunaan berjaya.
Ringkasan:
Di atas ialah cara menggunakan Docker untuk menggunakan projek dalam pembangunan PHP. Berbanding dengan kaedah penggunaan tradisional, penggunaan Docker boleh membantu kami mengurangkan kos pembangunan dan penggunaan, meningkatkan kebolehskalaan dan kestabilan aplikasi serta menjimatkan masa pembangun. Saya harap artikel ini dapat membantu semua orang mempelajari dan menggunakan teknologi Docker dengan lebih baik.
Atas ialah kandungan terperinci Cara menggunakan Docker untuk menggunakan projek dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!