Symfony是一个流行的PHP框架,使用Docker可以简化其安装和开发环境配置过程。以下是详细的安装步骤:
确保已安装: - Docker - Docker Compose
docker run --rm -v $(pwd):/app composer create-project symfony/skeleton my-symfony-project
composer create-project symfony/skeleton my-symfony-project
cd my-symfony-project
在项目根目录创建docker-compose.yml
文件:
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./:/var/www/html
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
build:
context: .
dockerfile: docker/php/Dockerfile
volumes:
- ./:/var/www/html
environment:
- APP_ENV=dev
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: symfony
MYSQL_USER: symfony
MYSQL_PASSWORD: symfony
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
创建docker/nginx.conf
:
server {
listen 80;
index index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
}
创建docker/php/Dockerfile
:
FROM php:8.1-fpm
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /var/www/html
docker-compose up -d
如果需要额外的Symfony组件,可以进入PHP容器安装:
docker-compose exec php bash
# 然后在容器内运行:
composer require symfony/maker-bundle --dev
composer require annotations
访问 http://localhost:8080
应该能看到Symfony欢迎页面。
修改.env
文件中的数据库配置:
DATABASE_URL="mysql://symfony:symfony@db:3306/symfony?serverVersion=5.7"
docker-compose down
docker-compose up -d --build
docker-compose logs -f
Symfony官方提供了一个更完整的Docker集成方案:Symfony Docker,包含更多功能如: - 生产优化配置 - CI/CD支持 - 多阶段构建 - 内置Varnish和Mercure支持
安装方法:
git clone https://github.com/dunglas/symfony-docker.git my-project
cd my-project
docker-compose up -d
希望这个指南能帮助你在Docker环境中顺利安装和运行Symfony应用!