前言
笔者用的是mac开发,但是mac自带的PHP功能安装十分不方便,并且和线上的linux开发环境不一致。在没有用docker之前一直用vagrant配置的centos的PHP开发环境,但是自从有了docker之后,就不再用vagrant了。
配置自己的PHP镜像
run.sh
sources.list
rush:plain;">
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
Dockerfile
rush:plain;">
FROM ubuntu:16.04
# ===========================
# 配置虚拟主机
# -v default:/etc/Nginx/sites-enabled/default
# 配置程序目录
# -v web:/var/www/html
# 配置映射端口
# -p 8008:80
# ===========================
MAINTAINER chengtao "751753158@qq.com"
ADD sources.list /etc/apt/sources.list
ADD run.sh /root/run.sh
RUN chmod +x /root/run.sh
RUN apt-get update
RUN apt-get install -y PHP-fpm PHP-MysqL Nginx
RUN sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/PHP/7.0/fpm/PHP.ini
RUN mkdir -p /run/PHP/
EXPOSE 80
CMD ["/bin/bash","/root/run.sh"]
执行命令
配置PHP MysqL开发环境
www/index.PHP
Nginx.conf
rush:plain;">
server {
listen 80 default_server;
root /var/www/html;
index index.html index.htm index.PHP;
location / {
try_files $uri $uri/ =404;
}
location ~ \.PHP$ {
include snippets/fastcgi-PHP.conf;
fastcgi_pass unix:/run/PHP/PHP7.0-fpm.sock;
}
}
docker-compose.yml
rush:plain;">
version: '2'
services:
MysqL:
image: MysqL:5.6
volumes:
- ./MysqL/:/var/lib/MysqL/
ports:
- "3307:3306"
environment:
- MysqL_ROOT_PASSWORD=123456
PHP-app:
image: d1studio/PHP-base:0.1
ports:
- "8009:80"
volumes:
- ./Nginx.conf:/etc/Nginx/sites-enabled/default
- ./www/:/var/www/html/
links:
- MysqL
开启PHP的测试项目
rush:bash;">
#开启
docker-compose up
#关闭
docker-compose down