没有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模板来生成你的nginxconfiguration文件。

假设你的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容器的主机文件,这是一个答案 。