web-dev-qa-db-ja.com

traefikプロキシの背後にあるGitlabの「ゲートウェイタイムアウト」

そのため、リバースプロキシとしてtraefikを使用して、dockerswarmにgitlab-ceインスタンスをセットアップしようとしています。

これは私のプロキシスタックです。

version: '3'

services:
  traefik:
    image: traefik:Alpine
    command: --entryPoints="Name:http Address::80 Redirect.EntryPoint:https" --entryPoints="Name:https Address::443 TLS" --defaultentrypoints="http,https" --acme --acme.acmelogging="true" --acme.email="[email protected]" --acme.entrypoint="https" --acme.storage="acme.json" --acme.onhostrule="true" --docker --docker.swarmmode --docker.domain="mydomain.com" --docker.watch --web
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    networks:
      - traefik-net
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      placement:
        constraints:
          - node.role == manager

networks:
  traefik-net:
    external: true

そして私のgitlabスタック

version: '3'

services:
  omnibus:
    image: 'gitlab/gitlab-ce:latest'
    hostname: 'lab.mydomain.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://lab.mydomain.com'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        registry_external_url 'https://registry.mydomain.com'
        registry_nginx['listen_port'] = 80
        registry_nginx['listen_https'] = false
        gitlab_Rails['gitlab_Shell_ssh_port'] = 2222
        gitlab_Rails['gitlab_email_from'] = '[email protected]'
        gitlab_Rails['gitlab_email_reply_to'] = '[email protected]'
    ports:
      - 2222:22
    volumes:
      - gitlab_config:/etc/gitlab
      - gitlab_logs:/var/log/gitlab
      - gitlab_data:/var/opt/gitlab
    networks:
      - traefik-net
    deploy:
      labels:
        traefik.enable: "port"
        traefik.frontend.rule: 'Host: lab.mydomain.com, Host: registry.mydomain.com'
        traefik.port: 80
      placement:
        constraints:
          - node.role == manager

  runner:
    image: 'gitlab/gitlab-runner:v1.11.4'
    volumes:
      - gitlab_runner_config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  gitlab_config:
  gitlab_logs:
  gitlab_data:
  gitlab_runner_config:

networks:
  traefik-net:
    external: true

traefik-netはオーバーレイネットワークです

したがって、docker stack deployを使用してデプロイし、lab.mydomain.comにアクセスすると、Gateway Timeoutエラーが発生します。 gitlabコンテナ内でcurl localhostを実行すると、正常に動作しているようです。問題が何であるかわからない、どんなポインタでもいただければ幸いです

11
Ernest Okot

私がしなければならなかったのは、traefikラベルtraefik.docker.networktraefik-netに設定することだけでした。 https://github.com/containous/traefik/issues/1254 を参照してください。

11
Ernest Okot