[英]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.