【问题标题】:Turn off MySQL strict mode in docker file for Github Actions CI Build在 docker 文件中为 Github Actions CI Build 关闭 MySQL 严格模式
【发布时间】:2022-03-25 07:20:55
【问题描述】:

我们最近将 Github Actions 集成到我们的项目中,并希望为 github 测试套件关闭 mysql 严格模式。

   services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_ALLOW_EMPTY_PASSWORD: yes
          MYSQL_DATABASE: github_db
        ports:
          - 3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

我尝试添加一个额外的选项“sql_mode”,但没有奏效:

options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 --sql_mode=""

我尝试将其添加为命令选项:

command: --sql_mode=""

这给出了错误Unexpected value 'command'

我也尝试在变量下添加它:

variables:
   strict_mode: false

但这给出了错误:

Unexpected value 'variables'

有没有办法在我们的 docker 文件中为 mysql 关闭严格模式?

提前致谢。

【问题讨论】:

标签: mysql docker github continuous-integration github-actions


【解决方案1】:

这对我有用:

  1. 为 mysql 容器命名,以便我们稍后引用它。 Github Actions 在后台调用docker create,将options 作为标志传递。 --name 是可用标志之一,拼写为 in the docker docs
services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_ALLOW_EMPTY_PASSWORD: yes
          MYSQL_DATABASE: github_db
        ports:
          - 3306
        options:
          --health-cmd="mysqladmin ping"
          --health-interval=10s
          --health-timeout=5s
          --health-retries=3
          --name=somemysql
  1. 在运行测试的步骤之前创建一个新的 Github 操作步骤。这一步execs进入docker容器,登录mysql,修改sql_mode,一行。
    steps:

    (some steps)

    ...

    - name: Change mysql sql_mode
      run: >
        docker exec somemysql mysql -u root -e "SET GLOBAL sql_mode = '';"

    ...

    (Step that runs the tests goes here)

【讨论】:

    猜你喜欢
    • 2014-02-20
    • 2022-01-20
    • 2019-12-25
    • 2020-09-06
    • 2015-01-01
    • 2020-03-10
    • 2020-01-27
    • 2021-08-24
    • 2021-01-11
    相关资源
    最近更新 更多