title: Keycloak in docker-compose network
body: <p>I want to setup a Docker network that contains a keycloak, postgres, and webapp instances.</p>
  
  <p>Is there a way to have network communications between containers but also understand oidc client redirects as well?  I am having an issue where containers can talk to each other just fine if i setup OIDC with container names for the docker network, but then I run into issues with the client that cannot connect to the those same URLs outside of the docker network on the host machine.</p>
  
  <p>Can anyone point me to the right docker documentation to look at for possible solutions with DNS or host to container communication?</p>
  
  <p><strong>---- EDIT ----</strong></p>
  
  <p>To clarify.  The containers can talk to each other just fine under their container names, but the client (i.e., Chrome) has to use <code>localhost</code> to talk to everything.  In my setup for my OIDC connection in the ui web application I have to use container names or localhost.  How do I get my client to understand container names in order to make the right request?</p>
  
  <pre><code>version: '2'
  
  services:
  
    ui:
      container_name: 'ui'
      image: 'bdparrish/ui:0.1'
      build:
        context: .
        dockerfile: ./ui/Dockerfile
      ports:
        - "8085:80"
      depends_on:
        - "postgres"
        - "keycloak"
      networks:
        - auth-network
      environment:
        - ASPNETCORE_ENVIRONMENT=Docker
  
    postgres:
      container_name: postgres
      image: 'postgres'
      environment:
        POSTGRES_PASSWORD: password
      ports:
        - "5432:5432"
      networks:
        - auth-network
  
    keycloak:
      container_name: keycloak
      image: jboss/keycloak
      ports: 
        - "8080:8080"
      depends_on:
        - postgres
      environment:
        DB_VENDOR: "POSTGRES"
        DB_ADDR: postgres
        DB_PORT: 5432
        DB_USER: keycloak
        DB_PASSWORD: password
        KEYCLOAK_USER: admin
        KEYCLOAK_PASSWORD: password
      restart: always
      networks:
        - auth-network
  
  networks:
    auth-network:
      driver: bridge
  </code></pre>