未 dockerized nginx 负载均衡到 gitlab dockerized
Not dockerized nginx load balancing to gitlab dockerized
我在安装了 nginx 的服务器上安装了 iRedMail。
我已经在 docker 容器中安装了 docker 然后是 gitlab。
是否可以从 docker 外部的 nginx 负载均衡到 docker 容器中的 gitlab?我不知道 Ip 和端口。
我还需要将 MariaDB 本地容器与 Gitlab docker 容器一起使用。
Is it possible to load balance from the nginx outside docker to the gitlab into the docker container ?
您可以使用 docker-gen
进行自动更新 nginx.conf
首先,按照doc
在您的主机上安装docker-gen
然后,您应该制作一个 docker-gen
模板来生成您的 nginx
配置文件。
假设你的 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
使用
自动生成目标nginx配置文件
docker-gen -watch -only-exposed -notify "nginx -s reload" nginx.tmpl /etc/nginx/sites-enabled/gitlab.conf
I also need to use the MariaDB local container with the Gitlab docker container.
您可以将主机 IP 暴露给您的 docker 容器的主机文件,这里有一个 answer 可以做到这一点。
我在安装了 nginx 的服务器上安装了 iRedMail。 我已经在 docker 容器中安装了 docker 然后是 gitlab。
是否可以从 docker 外部的 nginx 负载均衡到 docker 容器中的 gitlab?我不知道 Ip 和端口。
我还需要将 MariaDB 本地容器与 Gitlab docker 容器一起使用。
Is it possible to load balance from the nginx outside docker to the gitlab into the docker container ?
您可以使用 docker-gen
进行自动更新nginx.conf
首先,按照doc
在您的主机上安装docker-gen
然后,您应该制作一个 docker-gen
模板来生成您的 nginx
配置文件。
假设你的 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
使用
docker-gen -watch -only-exposed -notify "nginx -s reload" nginx.tmpl /etc/nginx/sites-enabled/gitlab.conf
I also need to use the MariaDB local container with the Gitlab docker container.
您可以将主机 IP 暴露给您的 docker 容器的主机文件,这里有一个 answer 可以做到这一点。