微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker-compose 错误类型无效,应该是字符串

如何解决docker-compose 错误类型无效,应该是字符串

我有这样的 docker-compose 设置

version: "3.2"

services:
   gitlab:
       image: gitlab/gitlab-ce:latest
       container_name: gitlab-container
       restart: always
       environment:
           - GITLAB_OMNIBUS_CONfig: |
                   external_url 'https://192.46.223.235'
                   gitlab_rails['gitlab_shell_ssh_port'] = 10022
                   letsencrypt['enabled'] = false
                   Nginx['enable'] = true
                   Nginx['redirect_http_to_https'] = false
                   Nginx[listen_port] = 10080
                   Nginx[listen_https] = false
       ports:
           - "10080:80"
           - "10022:22"

       volumes:
           - '$GITLAB_HOME/config:/etc/gitlab'
           - '$GITLAB_HOME/logs:/var/log/gitlab'
           - '$GITLAB_HOME/data:/var/opt/gitlab'

因此,当我运行 docker-compose up -d 时,出现以下错误

WARNING: The GITLAB_HOME variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.gitlab.environment contains {"GITLAB_OMNIBUS_CONfig": "-  external_url 'https://192.46.223.235'\n-  gitlab_rails['gitlab_shell_ssh_port'] = 10022\n  letsencrypt['enabled'] = false\n  Nginx['enable'] = true\n  Nginx['redirect_http_to_https'] = false\n  Nginx[listen_port] = 10080\n  Nginx[listen_https] = false\n"},which is an invalid type,it should be a string

请帮忙!

解决方法

删除 - 之前的 GITLAB_OMNIBUS_CONFIG

Compose environment: 块支持两种语法:

version: '3.8'
services:
  environment_as_list:
    environment:
      - KEY=value
      - LINES=start with minus
      - COLONS=false
  environment_as_map:
    environment:
      KEY: value
      LINES: do not start with minus
      COLONS: 'true'

您拥有的语法以 - 开头,因此它是一个 YAML 列表,但是它具有 key: value 语法,因此列表项是一个 YAML 映射。使用块标量语法,您需要映射形式,因此删除前导 -(并修复缩进)以使其不是列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。