Удалите только порты, выставленные в вашем файле docker-compose в сервисе tomcat, обратный прокси будет работать с внутренней сетью докера, используя ваш собственный файл nginx.conf со ссылкой на контейнер и внутренним портом контейнера tomcat, здесь я прилагаю пример:
version: '3.1'
services:
tomcat:
# build:
# context: ./tomcat
# dockerfile: Dockerfile
container_name: tomcat8
image: tomcat:search-api
nginx:
build:
context: ./nginx
dockerfile: Dockerfile
container_name: nginx
image: nginx:searchapi
links:
- "tomcat"
volumes:
- ./proxyConf:/etc/nginx/conf.d
depends_on:
- tomcat
ports:
- "80:80"
- "443:443"
proxyConf / default.conf file:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcat:8080;
}
}
При прохождении через прокси я добавляю соединение docker-compose tomcat с внутренним портом контейнера tomcat.
Это мое дерево направлений:
C:.
│ docker-compose.yml
│
├───nginx
│ Dockerfile
│
├───proxyConf
│ default.conf
│
└───tomcat
Dockerfile