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!