WSL Ubuntu Docker快速搭建PHP開發環境

編寫Dockerfile文件

<code>FROM php:7.4.3-fpm

MAINTAINER zhanghuizong <ifchange.com>

RUN /bin/echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib \\
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib \\
deb http://mirrors.aliyun.com/debian-security buster/updates main \\
deb-src http://mirrors.aliyun.com/debian-security buster/updates main \\
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib \\
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib \\
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib \\
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib' > /etc/apt/sources.list

# 下載必要的組件
RUN apt-get update \\
&& apt-get install -y vim \\
&& apt-get install -y apt-utils \\
&& apt-get install -y wget \\
&& apt-get install -y librabbitmq-dev \\
&& apt-get install -y zlib1g-dev \\
&& apt-get install -y libpng-dev \\
&& apt-get install -y libmcrypt-dev \\
&& apt-get install -y libmemcached-dev \\
&& apt-get install -y libxml2-dev \\
&& apt-get install -y libzip-dev

# 單獨下載PHP擴展包
RUN wget http://pecl.php.net/get/redis-5.1.1.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/xdebug-2.8.1.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/amqp-1.9.4.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/mcrypt-1.0.3.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/memcached-3.1.5.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/mongodb-1.7.3.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/xlswriter-1.3.3.2.tgz -P /tmp/ \\
&& wget http://pecl.php.net/get/swoole-4.4.16.tgz -P /tmp/

# 安裝PHP擴展包
RUN pecl install /tmp/redis-5.1.1.tgz \\
&& pecl install /tmp/xdebug-2.8.1.tgz \\
&& pecl install /tmp/amqp-1.9.4.tgz \\
&& pecl install /tmp/mcrypt-1.0.3.tgz \\
&& pecl install /tmp/memcached-3.1.5.tgz \\
&& pecl install /tmp/mongodb-1.7.3.tgz \\
&& pecl install /tmp/xlswriter-1.3.3.2.tgz \\
&& docker-php-ext-install bcmath \\
&& docker-php-ext-install ctype \\
&& docker-php-ext-install ctype \\
&& docker-php-ext-install pcntl \\
&& docker-php-ext-install pdo_mysql \\
&& docker-php-ext-install soap \\
&& docker-php-ext-install sockets \\

&& docker-php-ext-install calendar \\
&& docker-php-ext-install zip \\
&& docker-php-ext-install opcache \\
&& pecl install /tmp/swoole-4.4.16.tgz \\
&& docker-php-ext-enable redis xdebug amqp mcrypt mongodb swoole xlswriter \\
&& rm -rf /tmp/*/<ifchange.com>/<code>

Dockerfile編寫好,執行命令:sudo docker build -t php-7.4.3-fpm:v1.0.0 .

建議將構建好的鏡像push到hub.docker.com中去,方便以後使用

步驟:
1、docker login - 沒有賬號自行註冊
2、將剛剛構建好的PHP鏡像打一個標籤,執行命令:docker tag php-7.4.3-fpm:v1.0.0 zhanghuizong/php-7.4.3-fpm:v1.0.0
3、推送到遠端:docker push zhanghuizong/php-7.4.3-fpm:v1.0.0
推送完畢如何使用
docker pull zhanghuizong/php-7.4.3-fpm:v1.0.0

WSL Ubuntu Docker快速搭建PHP開發環境

效果圖

Docker服務編排

<code>version: '3'
services:
php:
image: zhanghuizong/php-7.4.3-fpm:v1.0.0
container_name: php
volumes:
- /mnt/d/workspaces:/data/httpd
ports:
- "9000:9000"
nginx:
image: nginx:latest
container_name: nginx
volumes:
- /mnt/d/workspaces:/data/httpd
- /mnt/d/docker/nginx/vhosts:/etc/nginx/conf.d
ports:
- "80:80"/<code>

執行命令:
1、啟動服務器:docker-compose up -d
2、停止服務:docker-compose down


如何運行PHP

<code>
docker run -d --name php zhanghuizong/php-7.4.3-fpm:v1.0.0/<code>


編寫PHP腳本

這個是否需要看個人需求吧


<code>#!/bin/bash


docker run -it --rm --name php-cli -v "$PWD":/data/httpd -w /data/httpd zhanghuizong/php-7.4.3-fpm:v1.0.0 php $1 $2/<code>

將上面shell文件放進:/usr/bin/ 中


首先我的Linux服務器壓根沒有裝PHP相關套件,通過上面shell腳本,寫入當前的Linux服務器中,那麼可在命令控制檯使用php,和原始php沒啥區別

WSL Ubuntu Docker快速搭建PHP開發環境


使用該命令運行php文件

WSL Ubuntu Docker快速搭建PHP開發環境


WSL Ubuntu Docker快速搭建PHP開發環境

WSL Ubuntu Docker快速搭建PHP開發環境


WSL Ubuntu Docker快速搭建PHP開發環境


分享到:


相關文章: