如何在GitHub Codespaces的Dev Container中配置随容器启动的测试MySQL服务器
在GitHub Codespaces的Dev Container中添加随启MySQL服务器
1. 修改Dev Container配置文件(devcontainer.json)
在项目.devcontainer目录下找到devcontainer.json(无则新建),添加services字段定义MySQL服务,示例配置如下:
{ "name": "你的开发容器", "dockerFile": "Dockerfile", "services": { "mysql": { "image": "mysql:8.0", // 可按需更换版本,如mysql:5.7 "ports": ["3306:3306"], // 映射容器端口到Codespaces环境 "environment": { "MYSQL_ROOT_PASSWORD": "root123", // root用户密码 "MYSQL_DATABASE": "dev_db", // 自动创建的默认数据库 "MYSQL_USER": "dev_user", // 自定义数据库用户 "MYSQL_PASSWORD": "dev123" // 自定义用户密码 }, "volumes": ["mysql-data:/var/lib/mysql"], // 挂载卷持久化数据,避免重启丢失 "waitFor": "healthy", // 等待MySQL就绪后再启动开发容器 "healthCheck": { "test": ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot123"], "interval": "10s", "timeout": "5s", "retries": 5 } } }, "remoteUser": "vscode" }
image:选择稳定的MySQL镜像版本即可environment:设置初始化核心参数,涵盖密码、默认库、自定义用户volumes:用命名卷存储数据,容器重启后数据不会丢失healthCheck:通过mysqladmin ping检测服务状态,确保开发容器启动时MySQL已可用
2. 配置应用连接信息
在项目配置文件(如.env、application.properties)中,将数据库连接指向Dev Container内的MySQL服务:
# .env示例 DB_HOST=mysql DB_PORT=3306 DB_NAME=dev_db DB_USER=dev_user DB_PASSWORD=dev123
这里DB_HOST直接用服务名mysql即可,Dev Container服务间通过内部网络互通。
3. 重建Dev Container
打开Codespaces命令面板(快捷键Ctrl+Shift+P),选择Rebuild Container,等待容器重建完成。此时MySQL会和开发容器一同启动。
4. 验证连接
在Dev Container终端中,安装mysql-client并测试连接:
# 以Debian/Ubuntu为例安装客户端 sudo apt update && sudo apt install -y mysql-client # 连接MySQL mysql -h mysql -u dev_user -p
输入配置的密码后,若能进入MySQL命令行界面,说明服务正常运行。
内容的提问来源于stack exchange,提问作者Lucien
相关产品推荐
相关产品推荐

