0

抱歉,如果这是一个重复的问题——我发现了类似的问题,但似乎没有一个是我的确切用例……如果我错过了提及链接的内容,将不胜感激。

我正在尝试用 frontproxy、acme-companion 和 gitlab 组成一个 docker 堆栈。

目前,我正在使用一个设置,其中包含几个用于 frontproxy 和 gitlab 的 docker-compose.yml 文件,位于单独的目录中——它正在工作,没有 acme-companion。

到目前为止,我尝试将它们全部集成到一个文件中失败了;显然我搞砸了GITLAB_OMNIBUS_CONFIG配置——我只是不明白我的错误在哪里。

version: '3.1'

services:
  frontproxy:
    restart: always
    image: jwilder/nginx-proxy
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "certs-volume:/etc/nginx/certs:ro"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
  nginx-letsencrypt-companion:
    restart: always
    image: nginxproxy/acme-companion
    volumes:
      - "certs-volume:/etc/nginx/certs"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: 'dev.redacted.com'
    environment:
      VIRTUAL_HOST: 'dev.redacted.com'
      LETSENCRYPT_HOST: 'dev.redacted.com'
      LETSENCRYPT_EMAIL: 'splash@redacted.com'
      VIRTUAL_PROTO: 'https'
      VIRTUAL_PORT: '443'
      CERT_NAME: 'redacted.com'
      GITLAB_OMNIBUS_CONFIG: |
      # Email setup
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = 'admin@redacted.com'
        gitlab_rails['gitlab_email_display_name'] = 'Gitlab@redacted.com'
        gitlab_rails['gitlab_email_reply_to'] = 'admin@redacted.com'
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = 'mail.redacted.com'
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = 'admin@redacted.com'
        gitlab_rails['smtp_password'] = 'redacted'
        gitlab_rails['smtp_domain'] = 'redacted.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['gitlab_root_email'] = 'admin@redacted.com'
        # HTTPS Setup
        letsencrypt['enable'] = false
        external_url 'https://dev.redacted.com'
        gitlab_rails['gitlab_https'] = true
        gitlab_rails['gitlab_port'] = 443
    ports:
      - '22:22'
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
volumes:
  certs-volume:

编辑:

我没有指定我看到的错误——感谢您指出,@sytech!因此,当尝试使用以下命令启动堆栈时,这是确切的错误消息docker-compose up -d

ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./docker-compose.yml", line 29, column 7
expected <block end>, but found '<scalar>'
  in "./docker-compose.yml", line 38, column 9
4

2 回答 2

0

虽然我无法弄清楚我在使用docker-compose.yml3.1 版时遇到的具体问题。我设法编写了一个现在对我有用的东西——也许它对其他人也有用:

version: '2.1'

services:
  frontproxy:
    restart: always
    image: jwilder/nginx-proxy
    labels:
      com.github.nginxproxy.acme-companion.frontproxy: true
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "certs-volume:/etc/nginx/certs:ro"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
  nginx-letsencrypt-companion:
    restart: always
    image: nginxproxy/acme-companion
    volumes:
      - "certs-volume:/etc/nginx/certs"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    depends_on:
      - "frontproxy"
    volumes_from:
      - frontproxy
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: 'dev.redacted.com'
    environment:
      VIRTUAL_HOST: 'dev.redacted.com'
      LETSENCRYPT_HOST: 'dev.redacted.com'
      LETSENCRYPT_EMAIL: 'admin@redacted.com'
      VIRTUAL_PROTO: 'https'
      VIRTUAL_PORT: '443'
      CERT_NAME: 'dev.redacted.com'
      GITLAB_SKIP_UNMIGRATED_DATA_CHECK: 'true'
      GITLAB_OMNIBUS_CONFIG: |
        # Email setup
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = 'admin@redacted.com'
        gitlab_rails['gitlab_email_display_name'] = 'Gitlab@Redacted'
        gitlab_rails['gitlab_email_reply_to'] = 'admin@redacted.com'
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = 'mail.redacted.com'
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = 'admin@redacted.com'
        gitlab_rails['smtp_password'] = 'myfancypassword'
        gitlab_rails['smtp_domain'] = 'redacted.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['gitlab_root_email'] = 'admin@redacted.com'
        # HTTPS Setup
        letsencrypt['enable'] = false
        external_url 'https://dev.redacted.com'
        gitlab_rails['gitlab_https'] = true
        gitlab_rails['gitlab_port'] = 443
    ports:
      - '22:22'
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
volumes:
  certs-volume:
于 2021-11-28T21:05:01.540 回答
0

I've been experiencing the same issue.

When I use the GITLAB_OMNIBUS_CONFIG environment variable, these settings do not appear to apply. If I copy just one of the settings that is easily identifiable into the gitlab.rb configuration, it applies just fine.

This is the environment variable as it is present in the container:

GITLAB_OMNIBUS_CONFIG="external_url 'https://dev.foo.com';nginx['redirect_http_to_https'] = true;gitlab_rails['gitlab_https'] = true;gitlab_rails['gitlab_email_enabled'] = true;gitlab_rails['gitlab_email_from'] = 'dev@foo.com';gitlab_rails['gitlab_email_display_name'] = 'DEV-GitLab';gitlab_rails['gitlab_email_reply_to'] = 'dev@foo.com';gitlab_rails['gitlab_email_subject_suffix'] = 'DEV-GIT';gitlab_rails['backup_keep_time'] = 172800;gitlab_rails['gitlab_shell_ssh_port'] = 9999;"

Yet, if I add the SSH port option to the gitlab.rb and reconfigure, I will see it in the clone address. So, while I am not using the composition method, I am launching the container with 'podman run' and passing options like those described in the docker guide for gitlab.

于 2021-11-30T08:40:42.547 回答