将Http请求从一个Docker容器发送到另一个

时间:2020-07-27 21:02:11

标签: docker hasura caddy

我正在运行多个Docker容器。我想从在另一个容器上运行的node js应用程序调用在docker容器上运行的graphql Hasura api。我无法使用用于访问Hasura api以便从节点js应用程序访问的URL-(http:/// v1 / graphql)。

我尝试了http:// localhost / v1 / graphql,但是那也不起作用。

以下是Hasura graphql的docker compose文件

version: '3.6'
services:
  postgres:
    image: postgis/postgis:12-master
    restart: always
    volumes:
    - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: <postgrespassword>
  pgadmin:
    image: dpage/pgadmin4
    restart: always
    depends_on:
    - postgres
    ports:
    - 5050:80
    ## you can change pgAdmin default username/password with below environment variables
    environment:
      PGADMIN_DEFAULT_EMAIL: <email>
      PGADMIN_DEFAULT_PASSWORD: <pass>
  graphql-engine:
    image: hasura/graphql-engine:v1.3.0-beta.3
    depends_on:
    - "postgres"
    restart: always
    environment:
      # database url to connect
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
      # enable the console served by server
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set "false" to disable console
      ## uncomment next line to set an admin secret key
      HASURA_GRAPHQL_ADMIN_SECRET: <secret>
      HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous
      HASURA_GRAPHQL_JWT_SECRET: '{ some secret }'
    command:
    - graphql-engine
    - serve
  caddy:
    image: abiosoft/caddy:0.11.0
    depends_on:
    - "graphql-engine"
    restart: always
    ports:
    - "80:80"
    - "443:443"
    volumes:
    - ./Caddyfile:/etc/Caddyfile
    - caddy_certs:/root/.caddy
volumes:
  db_data:
  caddy_certs:

caddy文件具有以下配置:

# replace :80 with your domain name to get automatic https via LetsEncrypt
:80 {
    proxy / graphql-engine:8080 {
        websocket
    }
}
  1. 我应该从另一个docker容器(此docker-compose中不存在)使用的api端点访问hasura api?在浏览器中,我使用http://#ipaddress / v1 / graphql。
  2. 球童在这里实际做什么配置?

0 个答案:

没有答案