
orbisk/django-test官方Python镜像虽广泛用于软件开发,但可能未预装Django测试所需的全部依赖,尤其在CI流水线中使用MySQL、MariaDB或Postgres作为服务时,需额外安装依赖或配置,增加开发流程复杂度。本镜像旨在提供便捷高效的CI环境MySQL数据库支持,预安装MySQL配置及必要客户端(如mysql-client),简化Django测试 setup 流程。
uv 包管理器| Python 版本 | 状态 | uv 预安装 |
|---|---|---|
^3.13.0 | 🟢 | 🟢 (^3.13.0) |
^3.12.4 | 🟢 | 🟢 (^3.12.7) |
^3.11.2 | 🟢 | 🟢 (^3.11.10) |
^3.10.10 | 🟢 | 🟢 (^3.10.15) |
^3.9.16 | 🟢 | 🟢 (^3.9.20) |
^3.8.16 | 🟢 | 🟢 (^3.8.20) |
^3.7.16 | 🟡 (详见) | 🔴 |
^2.x | 🔴 | 🔴 |
| MySQL 版本 | 状态 |
|---|---|
^9.0.0 | 🟢 |
^8.0.0 | 🟢 |
<=5.7 | 🟡 |
| MariaDB 版本 | 状态 |
|---|---|
^11.0.0 | 🟢 |
^10.7.8 | 🟢 |
<10.7.8 | 🟡 |
| Postgres 版本 | 状态 |
|---|---|
^17.0 | 🟢 |
^16.0 | 🟢 |
^15.2 | 🟢 |
<15.2 | 🟡 |
| MSSQL 版本 | 状态 |
|---|---|
>=2022 | 🟠 |
^2019-CU23-ubuntu-20.04 | 🟢 |
<=2017 | 🟠 |
*️⃣ 需额外步骤:参见创建测试数据库时出错
错误信息:Got an error creating the test database: (1044, "1044 (42000): Access denied for user '<test_user>'@'%' to database 'test_<my_db>'", '42000')
原因:MySQL用户仅被授予MYSQL_DB的权限,导致Django无法创建测试数据库。
解决方法:使用非root用户操作MySQL和MariaDB时,需为测试用户授予权限:
sqlecho "GRANT ALL on *.* to '$MYSQL_USER';"| mysql -u root --password="$MYSQL_ROOT_PASSWORD" -h <host> -p <port>
ymlvariables: MARIADB_USER: test_user # 测试用户 MARIADB_PASSWORD: password # 测试用户密码 MARIADB_ROOT_PASSWORD: root@password # root用户密码 MARIADB_DATABASE: my_db # 数据库名称 django-tests: image: orbisk/django-test:3.11 # 使用Python 3.11版本镜像 stage: test # 测试阶段 services: - name: mariadb:10 # 使用MariaDB 10服务 alias: maria # 服务别名 script: - pip3 install -r requirements.txt # 安装项目依赖 # MySQL用户仅拥有MYSQL_DB权限,需额外授权以创建测试数据库 - echo "GRANT ALL on *.* to '$MARIADB_USER';"| mysql -u root --password="$MARIADB_ROOT_PASSWORD" -h maria - python3 manage.py test # 执行Django测试
⚠️ MSSQL支持当前处于测试阶段。如有问题或疑问,请在GitHub提交Issue。
当前仅支持/测试以下版本:
^mssql-server-linux:2019-CU23-ubuntu-20.04mssql-django===1.3Microsoft ODBC Driver 17 for SQL Server 和 Microsoft ODBC Driver 18 for SQL Server('Microsoft ODBC Driver 18 for SQL Server' 当前在使用自签名SSL证书的CI服务中存在兼容性问题,如有解决方案欢迎提交Issue或PR)Python 3.7不再被CI/CD测试覆盖,因此无法保证镜像在该版本下的预期功能。原因是mssql-django等包已停止支持Python 3.7,导致无法进行测试。
如使用本镜像时遇到问题或有疑问,请在GitHub提交Issue。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务