I have the following docker-compose file:
# 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
The login service is used for an OAuth flow (Laravel passport/socialite) by the companies service.
The issue I've come across is that redirects break due to certain env variables requiring the login service name to send post requests in the internal docker network, but a full url (https://login.test) is required for browser redirects.
The .env variable in question is:
LARAVEL_PASSPORT_HOST=login
Is there a way to use the full url https://login.test in the internal docker network?