带数据库的代理后面的密钥斗篷

时间:2018-11-12 06:48:31

标签: docker nginx docker-compose keycloak jboss-tools

我想在jwilder的nginx-proxy后面有一个密钥斗篷,但是当它尝试连接到postgres数据库时出现错误。我测试了docker-compose示例,该示例可以正常工作,但是,一旦将keycloak容器连接到多个网络时,就会出现错误。

  • WFLYSRV0073:无效的选项“ x.x.x.x”(Postgres容器的内部ip地址)或
  • 重复的资源(当nginx在compose之外启动时,然后keycloak只是尝试附加到外部nginx网络)

这是我完整的docker-compose文件。如您所见,我从keycloak提供的docker-compose示例开始,并刚刚添加了另一个服务和网络。当keycloak位于代理之后时,根据keycloak文档,我还指定了3个额外的环境变量VIRTUAL_HOST(nginx的FQDN),VIRTUAL_PORT(nginx重定向到的端口)和PROXY_ADDRESS_FORWARDING。

version: '3'

networks:
  keycloak:
    driver: bridge
  nginx:
    driver: bridge

volumes:
  postgres_data:
      driver: local

services:
  nginx:
    image: jwilder/nginx-proxy:alpine
    restart: always
    networks:
      - nginx
    ports:
      - 8000:80
      - 8001:443
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
  postgres:
    image: postgres:alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=keycloak
      - POSTGRES_USER=keycloak
      - POSTGRES_PASSWORD=password
    networks:
      - keycloak
  keycloak:
    image: jboss/keycloak
    environment:
      - VIRTUAL_HOST=keycloak.local
      - VIRTUAL_PORT=8080
      - DB_VENDOR=POSTGRES
      - DB_ADDR=postgres
      - DB_DATABASE=keycloak
      - DB_USER=keycloak
      - DB_PASSWORD=password
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=Pa55w0rd
      - PROXY_ADDRESS_FORWARDING=true
    depends_on:
      - nginx
      - postgres
    networks:
      - nginx
      - keycloak

0 个答案:

没有答案