-
Notifications
You must be signed in to change notification settings - Fork 2
/
.platform.app.yaml
122 lines (105 loc) · 4.31 KB
/
.platform.app.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# This file describes an application. You can have multiple applications
# in the same project.
# The name of this app. Must be unique within a project.
name: app
# The runtime the application uses.
type: "php:7.1"
runtime:
extensions:
- redis
- apcu
- apcu_bc
# Configuration of the build of this application.
build:
flavor: composer
# The relationships of the application with services or other applications.
# The left-hand side is the name of the relationship as it will be exposed
# to the application in the PLATFORM_RELATIONSHIPS variable. The right-hand
# side is in the form `<service name>:<endpoint name>`.
relationships:
database: "mysqldb:mysql"
# The configuration of app when it is exposed to the web.
web:
# Specific parameters for different URL prefixes.
locations:
'/':
# The folder from which to serve static assets, for this location.
#
# This is a filesystem path, relative to the application root.
root: 'web'
# How long to allow static assets from this location to be cached.
#
# Can be a time in seconds, or -1 for no caching. Times can be
# suffixed with "s" (seconds), "m" (minutes), "h" (hours), "d"
# (days), "w" (weeks), "M" (months, as 30 days) or "y" (years, as
# 365 days).
expires: 5m
# Whether to forward disallowed and missing resources from this
# location to the application.
#
# Can be true, false or a URI path string.
passthru: '/index.php'
# Deny access to static files in this location.
allow: false
# Rules for specific URI patterns.
rules:
# Allow access to common static files.
'\.(jpe?g|png|gif|svgz?|css|js|map|ico|bmp|eot|woff2?|otf|ttf)$':
allow: true
'^/robots\.txt$':
allow: true
'^/sitemap\.xml$':
allow: true
'/sites/default/files':
# Allow access to all files in the public files directory.
allow: true
expires: 5m
passthru: '/index.php'
root: 'web/sites/default/files'
# Do not execute PHP scripts.
scripts: false
rules:
# Provide a longer TTL (2 weeks) for aggregated CSS and JS files.
'^/sites/default/files/(css|js)':
expires: 2w
# The size of the persistent disk of the application (in MB).
disk: 2048
# The mounts that will be performed when the package is deployed.
mounts:
"/web/sites/default/files": "shared:files/files"
"/tmp": "shared:files/tmp"
"/config": "shared:files/config"
"/private": "shared:files/private"
"/drush-backups": "shared:files/drush-backups"
# The hooks executed at various points in the lifecycle of the application.
hooks:
# Thunder switcher to using composer driven fetching of frontend libraries
# with 2.x. Initial call of `composer install` misses to download some of
# them so we re-run it here.
build: |
composer --no-ansi --no-interaction install --no-progress --prefer-dist --optimize-autoloader 2> /dev/null 1>/dev/null
# We run deploy hook after your application has been deployed and started.
deploy: |
mkdir -p /tmp/$PLATFORM_PROJECT/phpstorage/twig
rm -rf /tmp/$PLATFORM_PROJECT/phpstorage/twig/*
cd web
if [ ! -f /app/private/.platform.installed ]; then
# Import Thunder database and copy files on first deploy.
bunzip2 ../import/dbdump.sql.bz2 --stdout | /app/bin/drush sql-cli
cd sites/default/files
tar xvjf ../../../../import/files.tar.bz2
cd /app/web
/app/bin/drush cr
URL=`echo $PLATFORM_ROUTES | base64 --decode | json_pp | grep -o -e "http://master[^\"{}]*"`
/usr/bin/curl --request POST "http://crm.office.md-systems.ch/demo-pingback" --data-binary "type=thunder&id=$PLATFORM_PROJECT&url=$URL"
touch /app/private/.platform.installed
else
rm -r config/*
cp -rp config_sync/* config/
/app/bin/drush -y updatedb
fi
# The configuration of scheduled execution.
crons:
drupal:
spec: "*/20 * * * *"
cmd: "cd web ; drush core-cron"