【问题标题】:How to create mysql databse in git lab CI/CD yaml file?如何在 gitlab CI/CD yaml 文件中创建 mysql 数据库?
【发布时间】:2019-03-01 11:58:44
【问题描述】:

我是新的 gitlab CI/CD。我创建了一个简单的 yaml 脚本来构建和测试我的 php 应用程序。我正在使用 gitlab CI 中提供的共享运行器选项。 我已指定数据库名称“MYSQL_DATABASE”,但似乎没有任何效果。

我该如何指定?有没有其他方法可以在 YAML 文件中创建数据库。当我指定创建数据库时,构建失败说明

"/bin/bash: line 78: create: command not found".

【问题讨论】:

  • 可以分享一下yml文件吗?如果你使用 docker executor,你可以使用 mysql 作为服务docs.gitlab.com/ee/ci/services
  • YAML 中的 create database 命令正在作为 shell 命令执行,而不是数据库命令。你的数据库在哪里运行?你确定你有一个数据库正在运行?如果你在 Kubernetes 上运行,你可以run one as a service。请分享您的 YAML。
  • 我没有在 Kubernetes 中运行。我正在可用的共享跑步者中跑步。阶段:-构建-测试服务:-名称:mysql:5.7.24 变量:MYSQL_DATABASE:xxx MYSQL_ROOT_PASSWORD:xxx 构建:阶段:构建映像:php:7.2 脚本:-php 一些命令 -php 一些命令工件:expire_in:1 个月路径:-供应商/-.env phpunit:阶段:测试图像:php:7.2 脚本:-./vendor/bin/phpunit --colors --verbose --configuration phpunit.xml
  • 对此有任何帮助

标签: gitlab gitlab-ci gitlab-ci-runner


【解决方案1】:

如果不了解更多关于您的配置,很难提供帮助。正如用户 JGC 已经指出的那样,主要错误原因似乎是您试图将 create database 作为 bash 命令运行。

如果你想直接在 Linux 命令行上创建 MySQL 数据库,可以使用

mysql -uroot -ppassword -e "CREATE DATABASE database-name

但是,对于 GitLab CI,您应该尝试使用https://docs.gitlab.com/ee/ci/services/mysql.html 中描述的解决方案之一

使用 Docker 执行程序(例如,通过 gitlab.com 使用 SaaS 版本),您可以在 .gitlab-ci.yml 中使用以下内容:

services:
  - mysql:latest

variables:
  MYSQL_DATABASE: database-name
  MYSQL_ROOT_PASSWORD: mysql_strong_password

【讨论】:

  • 如果我想创建多个数据库怎么办?我可以使用 service:alias,但在这种情况下如何设置变量??
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 2021-09-11
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
相关资源
最近更新 更多