悠悠楠杉
如何配置DockerPHP环境与Git集成的详细步骤
搭建基于Docker的PHP开发环境并集成Git管理
在现代Web开发中,保持开发环境的一致性是提升团队协作效率的关键。使用Docker可以将PHP运行环境容器化,避免“在我机器上能跑”的问题,同时结合Git进行代码版本控制,能够实现从开发到部署的完整闭环。以下是详细的配置步骤。
首先,在本地安装Docker和Docker Compose。推荐使用Docker Desktop(支持Windows、macOS和Linux),安装完成后打开终端验证是否安装成功:
bash
docker --version
docker-compose --version
接下来,在项目根目录创建一个名为 docker-compose.yml 的文件,用于定义服务。以下是一个典型的PHP+MySQL+Nginx组合配置:
yaml
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
networks:
- app-network
php:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./src:/var/www/html
environment:
- XDEBUG_MODE=develop,debug
networks:
- app-network
db:
image: mysql:8.0
environment:
MYSQLROOTPASSWORD: rootpassword
MYSQLDATABASE: appdb
MYSQLUSER: devuser
MYSQLPASSWORD: devpass
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
networks:
- app-network
volumes:
db_data:
networks:
app-network:
driver: bridge
然后,在项目根目录创建 Dockerfile,用于自定义PHP镜像。例如使用PHP 8.2-FPM版本:
Dockerfile
FROM php:8.2-fpm-alpine
RUN apk update && apk add \
curl \
git \
zip \
unzip \
libzip-dev \
openssl \
&& docker-php-ext-install pdo_mysql zip
安装Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
同时创建Nginx配置文件 nginx.conf:
nginx
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
此时项目结构应为:
project/
├── docker-compose.yml
├── Dockerfile
├── nginx.conf
└── src/
└── index.php
在 src/index.php 中添加测试内容:
php
<?php
phpinfo();
?>
执行命令启动容器:
bash
docker-compose up -d --build
访问 http://localhost:8080 即可看到PHP信息页面,说明环境已正常运行。
接下来配置Git集成。初始化Git仓库:
bash
git init
创建 .gitignore 文件,排除不必要的文件:
/vendor/
.env
.docker/
logs/
*.log
.DS_Store
提交初始代码:
bash
git add .
git commit -m "初始化Docker化PHP项目"
为了确保团队成员使用相同的环境,应将 docker-compose.yml、Dockerfile 和 nginx.conf 等配置文件纳入版本控制。这样任何新成员只需克隆仓库并运行 docker-compose up 即可快速启动开发环境。
此外,建议在项目中加入 Makefile 或脚本简化常用操作:
makefile
up:
docker-compose up -d
down:
docker-compose down
shell:
docker-compose exec php sh
logs:
docker-compose logs -f
通过以上配置,我们实现了PHP环境的容器化与Git的深度集成。每次代码变更都可以通过Git跟踪,而Docker保证了环境一致性。无论是本地开发、CI/CD流水线还是生产部署,都能基于同一套配置运行,极大提升了开发效率和系统稳定性。这种模式特别适合团队协作和长期维护的项目。
