Se você estiver usando um link, o docker configura variáveis de ambiente e adiciona um alias para o contêiner vinculado em /etc/hosts
. Se você é capaz de codificar a porta (ou se é apenas a porta 80), você pode simplesmente fazer:
upstream gunicorn {
server linked-hostname:5000;
}
A porta está disponível apenas em uma variável de ambiente, que não pode ser usada no módulo upstream
, nem em blocos de servidor ou local. Eles só podem ser referenciados na configuração principal, o que não ajuda você. Você poderia fazer isso com o pacote openresty que inclui Lua.
Se você não quiser usar openresty / Lua, outra opção é fazer alguma substituição na inicialização do contêiner. Seu comando docker run
pode criar o link e executar um script de wrapper que realiza a substituição apropriada:
#!/bin/bash
/usr/bin/sed -i "s/server<gunicorn_server_placeholder>/${APP_WEB_1_PORT_5000_TCP_ADDR}/" default
start nginx