
16nsk/devcontainersDevcontainers 是针对 PHP 和 Node.js 开发优化的容器化开发环境,也可作为 Codespace 使用。该环境旨在提供一致、隔离且高效的开发体验,支持多种主流 PHP 和 Node.js 项目框架,简化开发环境配置流程,适用于个人开发及团队协作场景。
/projects 目录下创建多项目文件夹,实现前端与 API 等关联项目的统一管理。安装依赖工具
bashgit config --global user.name "Your Name" git config --global user.email "***"
获取项目模板
设置项目名称
编辑 .devcontainer/devcontainer.json,修改项目名称(确保不同项目名称唯一,实现存储隔离)。
调整服务与资源
编辑 docker-compose.yml:
devcontainer.json用于定义 VSCode 远程容器配置,关键参数:
name:项目名称(需唯一,影响容器命名和存储隔离)。dockerComposeFile:指定 docker-compose.yml 路径(默认指向项目根目录)。service:指定主服务容器(默认通常为 workspace)。extensions:预安装的 VSCode 扩展列表(可在此添加项目所需扩展,如 PHP 调试器、ESLint 等)。docker-compose.yml定义开发环境中的服务组合,主要服务及配置说明:
| 服务名 | 用途 | 默认端口映射(主机:容器) | 备注 |
|---|---|---|---|
workspace | 主开发容器(PHP/Node.js 环境) | - | 挂载用户目录,包含开发工具链 |
mariadb | MySQL 兼容数据库 | 3306:3306 | 默认用户/密码:developer/developer |
redis | 缓存服务 | 6379:6379 | - |
elasticsearch | 搜索引擎服务 | 9200:9200 | 资源消耗较高,非必需时建议禁用 |
端口映射规则:左侧为宿主机端口(可修改以避免冲突),右侧为容器内端口(不建议修改,除非明确容器内服务配置)。
本地 Git 全局配置(用户名、***、GPG 等)会自动同步至容器环境,确保提交信息与本地一致。
bashcomposer create-project laravel/laravel .
.env 文件,设置数据库主机为 mariadb(对应 docker-compose.yml 中的服务名):
envDB_HOST=mariadb DB_USERNAME=developer DB_PASSWORD=developer
服务将通过宿主机bashphp artisan serve --host=0.0.0.0
8000 端口暴露,可在浏览器访问 [***]。/projects 目录下创建子文件夹(如 api、frontend)。bashnpm install --save-dev prettier @prettier/plugin-php
.prettierrc 文件,配置格式化规则(示例):
json{ "printWidth": 120, "tabWidth": 4, "singleQuote": true }
devcontainer.json(如添加扩展、调整工作区设置):无需重建容器,VSCode 会自动应用,建议同步更新配置文件至版本库。docker-compose.yml(如增减服务、调整资源限制):需通过 VSCode 远程容器扩展触发重建(点击左下角图标,选择“Rebuild Container”)。开发用户目录(如 /home/developer)通过 Docker 卷挂载,以持久化用户配置(如 VSCode 设置、工具偏好)。若需重置用户环境:
bashdocker rm -f <container-name> # 替换为实际容器名 docker volume rm <user-volume-name> # 卷名通常包含项目名称和“user”前缀
8000、8080、3000、3306 等默认端口(或在 docker-compose.yml 中修改宿主机端口,如 8001:8000)。docker-cli。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务