没有dockerized nginx负载平衡到gitlab dockerized
我已经安装了iRedMail在我的服务器上安装了nginx 。 我已经在Docker容器中安装了docker,然后安装了gitlab。
是否有可能从docker外的nginx到gitlab到docker集装箱的负载均衡? 我不知道这个IP的端口。
我还需要将MariaDB本地容器与Gitlab泊坞窗容器一起使用。
是否有可能从docker外的nginx到gitlab到docker集装箱的负载均衡?
您可以使用docker-gen自动更新nginx.conf
首先,通过下面的文档在你的主机上安装docker-gen
然后,你应该build立一个docker-gen
模板来生成你的nginx
configuration文件。
假设你的gitlab容器名为gitlab
,我们把它绑定到一个域gitlab.domain.com
,那么我们有这个模板
{{ range $name, $containers := groupBy $ "Name" }} {{ $target_name := "gitlab"}} {{ if $name==$target_name}} upstream {{ $name }} { {{ range $index, $value := $containers }} {{ with $address := index $value.Addresses 0 }} server {{ $address.IP }}:{{ $address.Port }}; {{ end }} {{ end }} } {{ end }} server { listen 80; server_name gitlab.domain.com; location / { proxy_pass http://{{ $name }}; include /etc/nginx/proxy_params; } } {{ end }}
最后,我们运行docker-gen
来自动生成目标nginxconfiguration文件
docker-gen -watch -only-exposed -notify "nginx -s reload" nginx.tmpl /etc/nginx/sites-enabled/gitlab.conf
我还需要将MariaDB本地容器与Gitlab泊坞窗容器一起使用。
您可以将主机IP公开到您的docker容器的主机文件,这是一个答案 。