Add db mc dblegacy solr01
to etc hosts pointing to 127.0.0.1
for drush to function.
underscores in file names indicates directories. e.g.
docker_proxy_acl.vcl
-> docker/proxy/acl.vcl
version: '2' | |
services: | |
web: | |
image: reload/drupal-apache-fpm | |
ports: | |
- '80:80' | |
volumes_from: | |
- webroot | |
links: | |
- php:fpm | |
https: | |
image: zazukoians/hitch | |
ports: | |
- '443:443' | |
environment: | |
HITCH_PARAMS: --backend=[web]:80 --frontend=[*]:443 | |
links: | |
- proxy | |
proxy: | |
image: zazukoians/varnish | |
ports: | |
- '8080:80' | |
links: | |
- web | |
environment: | |
VCL_CONFIG: /vcl/custom.vcl | |
VARNISHD_PARAMS: '-p vcl_dir=/vcl' | |
volumes: | |
- './environment-setup/varnish/custom.vcl:/vcl/custom.vcl' | |
- './docker/proxy/backends.vcl:/vcl/backends.vcl' | |
- './docker/proxy/acl.vcl:/vcl/acl.vcl' | |
php: | |
image: adaptdk/docker-php-fpm-drupal7 | |
ports: | |
- "9000:9000" | |
volumes_from: | |
- webroot | |
links: | |
- db | |
- dblegacy | |
- mc | |
- solr:solr01 | |
mc: | |
image: memcached | |
ports: | |
- '11211:11211' | |
solr: | |
image: mparker17/solr-search-api-solr | |
ports: | |
- '8983:8983' | |
expose: | |
- '8983' | |
logging: | |
driver: none | |
db: | |
image: mariadb:10 | |
ports: | |
- '3306:3306' | |
environment: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_DATABASE: db | |
MYSQL_USER: db | |
MYSQL_PASSWORD: db | |
volumes: | |
- './dbdata:/var/lib/mysql' | |
dblegacy: | |
image: mariadb:10 | |
ports: | |
- '3307:3306' | |
environment: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_DATABASE: db_legacy | |
MYSQL_USER: db | |
MYSQL_PASSWORD: db | |
volumes: | |
- './dbdata_legacy:/var/lib/mysql' | |
webroot: | |
image: tianon/true | |
volumes: | |
- './htdocs:/var/www/web:rw' | |
- './settings/docker.settings.php:/var/www/web/sites/default/settings.php:ro' |
vcl 4.0; | |
acl purge { | |
"0.0.0.0"/0; # Match anything. | |
} |
vcl 4.0; | |
# Docker exposes the webserver under the hostname web | |
backend default { | |
.host = "web"; | |
.port = "80"; | |
} |
vcl 4.0; | |
include "backends.vcl"; | |
include "acl.vcl"; | |
sub vcl_recv { | |
# Happens before we check if we have this in cache already. | |
# | |
# Typically you clean up the request here, removing cookies you dont need, | |
# rewriting the request, etc. | |
# Cachetag support | |
# Only allow BAN requests from IP addresses in the purge ACL. | |
if (req.method == "BAN") { | |
# Same ACL check as above: | |
if (!client.ip ~ purge) { | |
return (synth(403, "Not allowed.")); | |
} | |
# Logic for the ban, using the Purge-Cache-Tags header. For more info | |
# see https://github.com/geerlingguy/drupal-vm/issues/397. | |
if (req.http.Purge-Cache-Tags) { | |
ban("obj.http.Purge-Cache-Tags ~ " + req.http.Purge-Cache-Tags); | |
} | |
else { | |
return (synth(403, "Purge-Cache-Tags header missing.")); | |
} | |
# Throw a synthetic page so the request won't go to the backend. | |
return (synth(200, "Ban added.")); | |
} | |
} | |
sub vcl_backend_response { | |
# Happens after we have read the response headers from the backend. | |
# | |
# Here you clean the response headers, removing silly Set-Cookie headers | |
# and other mistakes your backend does. | |
# Cachetags support | |
# Set ban-lurker friendly custom headers. | |
set beresp.http.X-Url = bereq.url; | |
set beresp.http.X-Host = bereq.http.host; | |
} | |
sub vcl_deliver { | |
# Happens when we have all the pieces we need, and are about to send the | |
# response to the client. | |
# | |
# You can do accounting or modifying the final object here. | |
# Cachetag support | |
# Remove ban-lurker friendly custom headers when delivering to client. | |
unset resp.http.X-Url; | |
unset resp.http.X-Host; | |
unset resp.http.Purge-Cache-Tags; | |
} |