
adhocore/lemp!Docker Build :/var/www/html --name new-lemp -d adhocore/lemp:8.0
在项目根目录创建docker-compose.yml,内容如下:
yaml# ./docker-compose.yml version: '3' services: app: image: adhocore/lemp:8.0 container_name: some-app # 不同应用可使用不同名称 volumes: - ./path/to/your/app:/var/www/html # 应用源代码 - db_data:/var/lib/mysql # 数据库数据持久化 # 可挂载PHP配置文件 # - /path/to/zz-overrides:/usr/local/etc/php/conf.d/zz-overrides.ini ports: - 8080:80 environment: MYSQL_ROOT_PASSWORD: supersecurepwd MYSQL_DATABASE: appdb MYSQL_USER: dbusr MYSQL_PASSWORD: securepwd # PostgreSQL使用类似环境变量,前缀为PGSQL_ volumes: db_data: {}
执行以下命令:
sh# 启动 docker-compose up -d # 停止 docker-compose stop
使用Compose更简洁直观,可预先配置卷和端口,无需在终端重复输入命令。
MYSQL_ROOT_PASSWORD时)MYSQL_USER但未传递MYSQL_PASSWORD时)PGSQL_ROOT_PASSWORD时)PGSQL_USER但未传递PGSQL_PASSWORD时)PHP应用中通过PDO访问MySQL:
php$db = new PDO( 'mysql:host=127.0.0.1;port=3306;dbname=' . getenv('MYSQL_DATABASE'), getenv('MYSQL_USER'), getenv('MYSQL_PASSWORD') );
访问PostgreSQL:
php$pdb = new PDO( 'pgsql:host=127.0.0.1;port=5432;dbname=' . getenv('PGSQL_DATABASE'), getenv('PGSQL_USER'), getenv('PGSQL_PASSWORD') );
已启用URL重写,自动适配应用是否包含public/目录。
扩展列表参见adhocore/phpfpm#extension。
sh# 进入容器shell docker exec -it lemp sh # 发送测试邮件 echo "\n" | sendmail -S 0 test@localhost
在http://localhost:8888可实时查看新邮件,或通过shell检查:
shcurl 0:88/messages
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务