La imagen de nginx no soporta env variables. Peeeero, tiene una función que usa envsubst sobre los archivos .template que haya en la carpeta /etc/nginx/tempaltes, o sea que:

web:
  image: nginx
  volumes:
   - ./templates:/etc/nginx/templates
  ports:
   - "8080:80"
  environment:
   - NGINX_HOST=foobar.com
   - NGINX_PORT=80

Un compose como este puede tener dos variables y una carpeta templates con un archivo default.conf.template que va a reemplazar al default.conf antes de que arranque el nginx dentro del contenedor :O

  listen ${NGINX_PORT};
  server_name ${NGINX_HOST};

Se vuelve

  listen 80;
  server_name foobar.com;

Sources

https://hub.docker.com/_/nginx