Apache, PHP, composer, Drush, Drupal Console, and SASS for Drupal projects.
10K+

Flight Deck Web is a minimalist Apache/PHP container for Drupal and PHP-based sites on Kubernetes and Docker. You can use it both for local development and production.
Features:
There are several tags available for this container, each with different software and support:
| Tags | PHP version | Drupal versions | Drush |
|---|---|---|---|
| 7.4 | 7.4 | 8, 9 | 10.x |
| 7.4-drupal | 7.4 | 7 | 8.x |
| latest, 7, 7.3 | 7.3 | 8, 9 | 10.x |
| 7.3-drupal7 | 7.3 | 7 | 8.x |
| 7.2 | 7.2 | 8 | 9.x |
| 7.2-drupal7 | 7.2 | 7 | 8.x |
| 5.6 | 5.6 | 7, 6 | 8.x |
This container does not use environment variables for configuration. Instead, the flight-deck-web.yml file is used to handle all configuration.
---
flightdeck_web: {}
All configuration is done as items under the flightdeck_web variable. See the following sections for details.
This container may have one or more virtual hosts configured to serve. Each is specified as an item under the vhosts key:
---
flightdeck_web:
vhosts:
- name: "example.com"
host: "*:80"
docroot: "/var/www/html"
aliases:
- "docker.test"
- "docker.localhost"
env:
- name: ANSWER_TO_EVERYTHING
value: "42"
https: yes
certFile: "/etc/ssl/apache2/server.pem"
keyFile: "/etc/ssl/apache2/server.key"
extraLines:
- "SSLProxyEngine On"
Where:
hostname:port on which to accept requests. Optional, defaults to *:80./var/www/html.yes to enable, no to disable. Optional, defaults to no.*.pem format. Optional.This container uses mod_php to provide PHP as part of the Apache process. While PHP is configured with sensible defaults out of the box, you may customize them by defining the php key:
---
flightdeck_web:
php:
sendmail_path: "/usr/sbin/sendmail"
max_execution_time: "120"
max_input_vars: "3000"
memory_limit: "{{ lookup('env', 'PHP_MAX_INPUT_VARS') | default('320M', true) }}"
upload_max_filesize: "128M"
post_max_size: "128M"
error_reporting: "E_ALL & ~E_DEPRECATED & ~E_STRICT"
display_errors: no
display_startup_errors: no
error_log: "/dev/stderr"
variables_order: "GPCS"
Where:
320M.128M.128M.no.no./dev/stderr.XDebug is included out of the box with Flight Deck Web. By default, it is not enabled. You can configure it using the xdebug key:
---
flightdeck_web:
xdebug:
enabled: no
autostart: no
connectBack: no
stdoutLogs: no
idekey: "PHPSTORM"
remoteHost: "10.254.254.254"
Where:
yes), or disabled (no). Optional, default is no.idekey isn't present. Optional, defaults to no.no as this is not functional on Docker for Mac or Windows.no as this is only necessary when troubleshooting XDebug.PHPSTORM.10.254.254.254.The XDebug profiler is also included with the container out of the box for use in gathering PHP performance data for your application. You may configure it by using the xdebugProfile key:
---
flightdeck_web:
xdebugProfile:
trigger: "XDEBUG_PROFILE"
force: no
Where:
XDEBUG_PROFILE.yes), or not (no). Optional, default is no.Use the ten7.flightdeck_cluster role on Ansible Galaxy to deploy the web container as a deployment. By default, it shares the same pod with ten7/flight-deck-varnish:
flightdeck_cluster:
namespace: "example-com"
configMaps:
- name: "flight-deck-web"
files:
- name: "flight-deck-web.yml"
content: |
flightdeck_web:
web:
replicas: 1
configMaps:
- name: "flight-deck-web"
path: "/config/web"
Create the flight-deck-web.yml file relative to your docker-compose.yml. Define the varnish service mounting the file as a volume:
version: '3'
services:
varnish:
image: ten7/flight-deck-web
ports:
- 80:80
- 433:433
volumes:
- ./flight-deck-web.yml:/config/web/flight-deck-web.yml
XDebug creates a performance cost whenever enabled, even if the trigger value is not present in the request. For this reason, it's best to leave XDebug disabled unless you need to use the debugger. To do so, you can create a docker-compose.overrides.yml in the same directory as your docker-compose.yml file:
version: '3'
services:
web:
environment:
PHP_XDEBUG_ENABLED: 1
PHP_XDEBUG_AUTOSTART: 1
PHP_XDEBUG_PROFILE_TRIGGER: XDEBUG_PROFILE
It is highly recommended to add docker-compose.overrides.yml to your project's .gitignore.
Often, you may wish to build a custom container on top of this one which includes your website. To see an example of this, see the ten7/flight-deck-drupal example container.
This container is part of the Flight Deck library of containers for Drupal local development and production workloads on Docker, Swarm, and Kubernetes.
Flight Deck is used and supported by TEN7.
If you need to get verbose output from the entrypoint, set flightdeck_debug to true or yes in the config file.
---
flightdeck_debug: yes
This container uses Ansible to perform start-up tasks. To get even more verbose output from the start up scripts, set the ANSIBLE_VERBOSITY environment variable to 4.
If the container will not start due to a failure of the entrypoint, set the FLIGHTDECK_SKIP_ENTRYPOINT environment variable to true or 1, then restart the container.
Flight Deck is licensed under GPLv3. See LICENSE for the complete language.
Content type
Image
Digest
Size
143.4 MB
Last updated
about 6 years ago
docker pull ten7/flight-deck-web