
iloh/symfonySymfony Docker镜像是针对Symfony PHP Web框架优化的容器化运行环境,集成了Symfony运行所需的基础组件(如PHP、Web服务器、Composer等),支持多PHP版本选择,提供灵活的环境配置,适用于Symfony应用的开发、测试及生产环境部署。
8.2、8.1等),适配不同Symfony版本的PHP需求APP_ENV),避免环境配置冲突bashdocker run -d \ --name symfony-dev \ -p 8000:8000 \ -v $(pwd):/app \ -e APP_ENV=dev \ -e DATABASE_URL="mysql://user:pass@mysql:3306/symfony" \ symfony:8.2-dev
-v $(pwd):/app:挂载本地Symfony项目目录到容器内,实现代码热更新-e APP_ENV=dev:指定开发环境,启用调试模式及错误显示-p 8000:8000:映射容器内Web服务器端口到本地bashdocker run -d \ --name symfony-prod \ -p 80:80 \ -e APP_ENV=prod \ -e APP_SECRET="your-secure-secret" \ -e DATABASE_URL="mysql://user:pass@mysql:3306/symfony_prod" \ --restart always \ symfony:8.2-prod
--restart always:配置容器自动重启,增强生产环境稳定性APP_ENV=prod:启用生产环境配置,禁用调试工具,启用缓存优化yamlversion: '3.8' services: symfony: image: symfony:8.2 container_name: symfony-app ports: - "80:80" environment: - APP_ENV=prod - APP_SECRET=your-app-secret - DATABASE_URL=mysql://symfony_user:password@db:3306/symfony_db volumes: - ./app:/app # 开发环境挂载代码目录,生产环境可移除或只读挂载 - symfony_cache:/app/var/cache - symfony_logs:/app/var/log depends_on: - db restart: unless-stopped db: image: mysql:8.0 container_name: symfony-db environment: - MYSQL_ROOT_PASSWORD=rootpass - MYSQL_DATABASE=symfony_db - MYSQL_USER=symfony_user - MYSQL_PASSWORD=password volumes: - mysql_data:/var/lib/mysql restart: unless-stopped volumes: mysql_data: symfony_cache: symfony_logs:
| 环境变量名 | 描述 | 默认值 | 适用场景 |
|---|---|---|---|
APP_ENV | 应用环境(dev/test/prod) | dev | 所有环境 |
APP_SECRET | Symfony应用密钥(用于加密等安全功能) | 自动生成 | 生产环境必填 |
DATABASE_URL | 数据库连接URL | - | 需连接数据库时 |
PHP_MEMORY_LIMIT | PHP内存限制 | 128M | 内存密集型应用 |
WEB_SERVER | Web服务器类型(nginx/apache) | nginx | 自定义Web服务器 |
COMPOSER_INSTALL | 是否自动执行composer install | true | 首次部署或依赖更新 |
-v $(pwd):/app挂载本地Symfony项目目录,修改代码后无需重建镜像即可生效APP_ENV=dev并安装Symfony Debug Bundle,可通过/_profiler访问调试面板docker exec -it symfony-dev composer require <package>在容器内安装依赖symfony:dev镜像安装依赖,运行阶段使用symfony:prod镜像,减少镜像体积APP_ENV=prod,并删除require-dev依赖(通过composer install --no-dev)php bin/console cache:warmup预生成缓存/app/var/log)到宿主机或外部存储,避免容器重启丢失日志镜像标签遵循{php-version}-{environment}格式,例如:
8.2:PHP 8.2版本,默认生产环境配置8.1-dev:PHP 8.1版本,开发环境配置(含调试工具)latest:最新稳定PHP版本的生产环境配置

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务