For projects that need multiple web servers but need to stay in the same Docksal project (e.g., headless/decoupled applications with frontend and backend hosted separately), you have a few options available.
Use the primary web container and add a separate virtual host. See web container configuration overrides.
All subdomains of your project (*.project.docksal
) are automatically routed to the primary web
container.
Using a subdomain for the extra virtual host is the most straightforward approach.
<VirtualHost *:80>
ServerName ${APACHE_SERVERNAME}
ServerAlias styleguide.*
DocumentRoot /var/www/styleguide
</VirtualHost>
<Directory "/var/www/styleguide">
Require all granted
</Directory>
To route an additional custom domain to the primary web container, see vhost-proxy docs.
Define a secondary web service in your project’s docksal.yml
file:
Apache:
services:
...
styleguide:
image: docksal/apache:2.4-2.3
volumes:
- project_root:/var/www:ro,nocopy,cached
environment:
- APACHE_DOCUMENTROOT=/var/www/styleguide
labels:
- io.docksal.virtual-host=styleguide.${VIRTUAL_HOST}
Nginx:
services:
...
styleguide:
image: docksal/nginx:1.14-1.0
volumes:
- project_root:/var/www:ro,nocopy,cached
environment:
- NGINX_VHOST_PRESET=html
- NGINX_SERVER_ROOT=/var/www/styleguide
labels:
- io.docksal.virtual-host=styleguide.${VIRTUAL_HOST}