簡體   English   中英

使用 docker 容器連接到 laravel 中的 postgres

[英]Connect to postgres in laravel using docker containers

我從 laravel 連接到 postgres 容器時遇到問題。

它們位於作為分離的 docker 容器創建的同一主機上。

這里是YML<\/code>

version: '3'
services:

  # The Application
  app:
    env_file: .env
    container_name: "laravel"
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    environment:
      - "DB_PORT=${DB_PORT}"
      - "DB_HOST=${DB_HOST}"
      - "DB_USER=${DB_USER}"
      - "DB_PASS=${DB_PASS}"
      - "DB_DATABASE=${DB_DATABASE}"
      - "DB_SCHEMA=${DB_SCHEMA}"
    restart: 'always'
  # The Web Server
  web:
    container_name: "nginx"
    build:
      context: ./
      dockerfile: web.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/app
    ports:
      - 8080:80
    restart: 'always'
  # The Database
  pgsql:
    image: postgres:10.1
    container_name: "baza"
    environment:
      - 'DB_USER=${DB_USER}'
      - 'DB_PASS=${DB_PASS}'
    volumes:
      - '${DB_VOLUME_LOCATION}:/var/lib/postgresql/data'
    ports:
      - "${DB_PORT}:${PGSQL_CONTAINER_PORT}"
    restart: 'always'

添加更改數據庫名稱

environment:
      - 'DB_USER=${DB_USER}'
      - 'DB_PASS=${DB_PASS}'
      # - 'DB_NAME=${DB_NAME}'
-------------------------------
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=postgres
DB_USER=postgres
DB_PASS=postgres

您應該使用以下命令獲取 Postgres 容器的 ip。

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

然后將 Laravel .env 中 Postgres 容器的 Ip 替換為主機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM