首页 > 解决方案 > 将角度容器连接到同一主机上的 laravel 容器

问题描述

我在将角度容器连接到同一主机上的 laravel 容器时遇到问题。当我想从 laravel 连接到数据库时,这不适用于 http://localhost 但我找到了使用 docker vairable host.docker.internal 访问的解决方案。

现在,我有问题要做同样的事情来将角度连接到 API。为此,我正在使用 proxy.conf.json 文件。如果我将它指向 localhost 则无法正常工作,但如果我使用本地 IP,则它可以工作。

我还需要在那里使用一些变量,但我不知道如何实现它。

这是我的工作 proxy.conf.json

{
    "/api/*": {
        "target": "http://192.168.8.104:8080",
        "secure": false,
        "changeOrigin": true,
        "logLevel": "debug",
        "cookieDomainRewrite": "localhost:4200",
        "headers": {
            "Connection": "keep-alive"
        }
    },
    "/sanctum/csrf-cookie": {
        "target": "http://192.168.8.104:8080",
        "changeOrigin": true,
        "cookieDomainRewrite": "http://192.168.8.104:8080"
    }
}

和 docker-compose.yml

version: '3.8'

services:
  database:
    image: postgres
    container_name: database
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: laravel_docker
    volumes:
      - /var/lib/postgresql/data
    ports:
      - "5433:5432"

  # API
  backend:
    container_name: backend
    build:
      context: .
      dockerfile: ./backend/Dockerfile
    image: 'backend'
    ports:
      - "8080:8000"
    volumes:
      - ./backend:/app
    depends_on:
      - database

  # Frontend
  frontend:
    container_name: frontend
    build:
      context: .
      dockerfile: ./frontend/Dockerfile
    image: 'frontend'
    volumes:
      - ./frontend:/usr/app
    ports:
      - "4200:4200"
    command:
      ng serve --host 0.0.0.0 --disable-host-check  --proxy-config proxy.conf.json
    depends_on:
      - backend

现在,我需要在 proxy.conf.json 中使用当前 IP 地址而不是 192.168.8.104

谢谢

编辑:

它在 docker-compose.yml 中添加网络并采用 proxy.conf.json 在其中使用服务后工作。

networks:
  internal:
{
    "/api/*": {
        "target": "http://backend:8000",
        "secure": false,
        "changeOrigin": true,
        "logLevel": "debug",
        "cookieDomainRewrite": "backend:8000",
        "headers": {
            "Connection": "keep-alive"
        }
    },
    "/sanctum/csrf-cookie": {
        "target": "http://backend:8000",
        "changeOrigin": true,
        "cookieDomainRewrite": "backend:8000"
    }
}

标签: angulardockerdocker-composelaravel-8

解决方案


推荐阅读