Impedindo o VisualStudio de trocar porta a cada execução

Depois de habilitar docker e docker-compose no projeto, a cada execução, uma nova porta é usada pelo docker para expor o sistema para a rede externa.
Como estou trabalhando com uma API, é muito chato ter que trocar a porta de execução no Postman toda vez.

Fiz uma busca pela internet e estas são as coisas que não funcionaram:
– Alterar o launchingSettings.json
– Alterar o arquivo de projeto do Docker-Compose

O que funcionou mas não era exatamente o que eu queria:
– No arquivo do docker compose adicionei parâmetros na descrição do container da API, desta forma:

services:
  api:
    image: ${DOCKER_REGISTRY-}api
    build:
      context: .
      dockerfile: API/Dockerfile
    ports:
        - "1078:80"
        - "1079:443"

esse bloco ports faz o bind da porta 80 expondo a porta 1078, ou seja, você vai fazer a conexão a aplicação pela porta 1078 ou 1079 em SSL.

Mas isso não era o que eu queria, o docker acaba fazendo o bind de duas portas pra cada porta interna.
Então toda vez que eu rodava o container uma porta aleatória ainda era designada para o sistema.

Agora a solução que funciona (como eu quero):

No projeto do Docker-Compose clique na setinha do lado do docker-compose.yml, o arquivo docker-compose.override.yml vai aparecer.

Dentro dele você vai ver ver as portas

ports:
      - "80"
      - "443"

basta trocar para:

ports:
      - "5000:80"
      - "5001:443"

Dessa forma a porta exposta será a 5000 e a 5001.

Espero ter ajudado!

Leave a Reply

Your email address will not be published. Required fields are marked *