我有以下 docker-compose 文件:
# For more information: https://laravel.com/docs/sail
version: '3'
services:
login:
build:
context: ${LOGIN}/vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '${LOGIN}:/var/www/html'
networks:
- sail
depends_on:
- mysql
companies:
build:
context: ${COMPANIES}/vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '${COMPANIES}:/var/www/html'
networks:
- sail
depends_on:
- mysql
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
webserver:
image: 'nginx:alpine'
volumes:
- '${NGINX_CONFIG}:/etc/nginx/conf.d'
- '${NGINX_CONFIG}/certs/:/etc/nginx/ssl'
ports:
- 80:80
- 443:443
networks:
- sail
depends_on:
- login
- companies
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local
该login
服务用于 OAuth 流程(Laravel 护照/社交名流)companies
。
我遇到的问题是重定向中断,因为某些环境变量需要login
服务名称才能在内部 docker 网络中发送发布请求,但是浏览器重定向需要完整的 url ( https://login.test )。
有问题的 .env 变量是:
LARAVEL_PASSPORT_HOST=login
有没有办法https://login.test
在内部 docker 网络中使用完整的 url?