Mam tu pewien problem nad którym siedzę od wczoraj - mam utworzoną sieć wewnętrzną dla kontenerów dockera w ramach której działa aplikacja napisana w Go oraz serwer http nginx. O ile za pomocą ports: 8080:8080
udało mi się sprawić, że serwer będzie wystawiony na zewnątrz to chciałbym aby serwer ten nie był wystawiony bezpośrednio na zewnątrz tylko poprzez nginx. Dopóki udostępniam port na zewnątrz aplikacja działa (tzn nginx zauważa ją i przekierowuje tam ruch ze swoich portów 80 i 443). Gdy próbuję schować kontener w bridge network okazuje się już że nginx nie widzi aplikacji. Załączam mój plik docker-compose.yml
(zakomentowałem problematyczną sekcję która sprawia że kontener jest widoczny, ale także na zewnątrz)
version: '3'
networks:
backend:
name: backend
services:
golang-baseapp:
container_name: go
build:
dockerfile: Dockerfile
context: .
# ports:
# - 8080:8080
tty: true
volumes:
- ./certbot/conf/:$HOME/certbot/conf/:ro
networks:
- backend
nginx-webserver:
container_name: web
image: nginx:latest
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf/:/etc/nginx/conf.d/:ro
- ./certbot/www:/var/www/certbot/:ro
- ./certbot/conf/:/etc/nginx/ssl/:ro
networks:
- backend