You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为同镜像多GitLab CI服务配置独立环境变量

问题:GitLab CI中无法为两个MySQL服务实例配置不同环境变量

问题背景

我正尝试在GitLab CI中使用同一镜像(mysql:8.0.32)的两个服务实例,但无法为每个实例配置不同的环境变量。

初始配置

最初采用全局变量配置,两个服务共享同一套变量:

services:
  - name: mysql:8.0.32
    alias: maindb
  - name: mysql:8.0.32
    alias: otherdb

variables:
  # Configure mysql environment variables
  MYSQL_DATABASE: $DB_DATABASE
  MYSQL_ROOT_HOST: "%"
  MYSQL_ROOT_PASSWORD: $DB_PASSWORD
  MYSQL_USER: $DB_USERNAME
  MYSQL_PASSWORD: $DB_PASSWORD
  MYSQL_HOST: $DB_HOST
  MYSQL_PORT: $DB_PORT

修改后的配置

根据文档提示,尝试为每个服务单独指定专属变量:

services:
  - name: mysql:8.0.32
    alias: maindb
    variables:
      # Configure mysql environment variables
      MYSQL_DATABASE: $DB_DATABASE
      MYSQL_ROOT_HOST: "%"
      MYSQL_ROOT_PASSWORD: $DB_PASSWORD
      MYSQL_USER: $DB_USERNAME
      MYSQL_PASSWORD: $DB_PASSWORD
      MYSQL_HOST: $DB_HOST
      MYSQL_PORT: $DB_PORT
  - name: mysql:8.0.32
    alias: otherdb
    variables:
      # Configure mysql environment variables
      MYSQL_DATABASE: $DB2_DATABASE
      MYSQL_ROOT_HOST: "%"
      MYSQL_ROOT_PASSWORD: $DB2_PASSWORD
      MYSQL_USER: $DB2_USERNAME
      MYSQL_PASSWORD: $DB2_PASSWORD
      MYSQL_HOST: $DB2_HOST
      MYSQL_PORT: $DB2_PORT

文档提示

ℹ️ 在GitLab UI中设置的变量不会传递到服务容器中。

报错信息

服务启动失败,具体报错如下:

*** WARNING: Service runner-[...]-mysql-0 probably didn't start properly.
Health check error:
start service container: Error response from daemon: Cannot link to a non running container: /runner-[...]-mysql-0 AS /runner-[...]-mysql-0-wait-for-service/service (services.go:187:0s)
Service container logs:
2023-11-09T10:03:01.238208088Z 2023-11-09 10:03:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.32-1.el8 started.
2023-11-09T10:03:01.390086193Z 2023-11-09 10:03:01+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2023-11-09T10:03:01.399340015Z 2023-11-09 10:03:01+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.32-1.el8 started.
2023-11-09T10:03:01.542018145Z 2023-11-09 10:03:01+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
2023-11-09T10:03:01.542054237Z     You need to specify one of the following as an environment variable:
2023-11-09T10:03:01.542058782Z     - MYSQL_ROOT_PASSWORD
2023-11-09T10:03:01.542062323Z     - MYSQL_ALLOW_EMPTY_PASSWORD
2023-11-09T10:03:01.542065140Z     - MYSQL_RANDOM_ROOT_PASSWORD

用户疑问

文档说明不够清晰,我是否遗漏了关键配置?

内容的提问来源于stack exchange,提问作者shaedrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:23:16