そのため、リバースプロキシとして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
を実行すると、正常に動作しているようです。問題が何であるかわからない、どんなポインタでもいただければ幸いです
私がしなければならなかったのは、traefikラベルtraefik.docker.network
をtraefik-net
に設定することだけでした。 https://github.com/containous/traefik/issues/1254 を参照してください。