Refine ddev config

This commit is contained in:
Björn Fromme
2020-01-24 11:37:15 +01:00
parent f89bc3620c
commit 1beadfaa24
18 changed files with 410 additions and 147 deletions
+9
View File
@@ -0,0 +1,9 @@
ARG BASE_IMAGE
FROM $BASE_IMAGE
ARG username
ARG uid
ARG gid
RUN (groupadd --gid $gid "$username" || groupadd "$username" || true) && (useradd -l -m -s "/bin/bash" --gid "$username" --comment '' --uid $uid "$username" || useradd -l -m -s "/bin/bash" --gid "$username" --comment '' "$username")
+9
View File
@@ -0,0 +1,9 @@
ARG BASE_IMAGE
FROM $BASE_IMAGE
ARG username
ARG uid
ARG gid
RUN (groupadd --gid $gid "$username" || groupadd "$username" || true) && (useradd -l -m -s "/bin/bash" --gid "$username" --comment '' --uid $uid "$username" || useradd -l -m -s "/bin/bash" --gid "$username" --comment '' "$username")
+9
View File
@@ -0,0 +1,9 @@
ARG BASE_IMAGE
FROM $BASE_IMAGE
ARG username
ARG uid
ARG gid
RUN (groupadd --gid $gid "$username" || groupadd "$username" || true) && (useradd -l -m -s "/bin/bash" --gid "$username" --comment '' --uid $uid "$username" || useradd -l -m -s "/bin/bash" --gid "$username" --comment '' "$username")
+16
View File
@@ -0,0 +1,16 @@
Scripts in this directory will be executed inside the db
container. A number of environment variables are supplied to the scripts, including:
DDEV_APPROOT: file system location of the project on the host)
DDEV_HOST_DB_PORT: Localhost port of the database server
DDEV_HOST_WEBSERVER_PORT: Localhost port of the webserver
DDEV_HOST_HTTPS_PORT: Localhost port for https on webserver
DDEV_DOCROOT: Relative path from approot to docroot
DDEV_HOSTNAME: Comma-separated list of FQDN hostnames
DDEV_PHP_VERSION
DDEV_WEBSERVER_TYPE: nginx-fpm, apache-fpm, apache-cgi
DDEV_PROJECT_TYPE: drupal8, typo3, backdrop, wordpress, etc.
DDEV_ROUTER_HTTP_PORT: Router port for http
DDEV_ROUTER_HTTPS_PORT: Router port for https
More environment variables may be available, see https://github.com/drud/ddev/blob/52c7915dee41d4846f9f619520b726994c0372c5/pkg/ddevapp/ddevapp.go#L1006-L1030
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
## #ddev-generated
## Description: run mysql client in db container
## Usage: mysql [flags] [args]
## Example: "ddev mysql" or "ddev mysql -uroot -proot" or "echo 'SHOW TABLES;' | ddev mysql"
## `ddev mysql --database=mysql -uroot -proot` gets you to the 'mysql' database with root privileges
mysql -udb -pdb $@
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
## #ddev-generated
## Description: run mysqldump in web container
## Usage: mysqldump [flags] [args]
## Example: "ddev mysqldump db" or "ddev mysqldump otherdb" or "ddev mysqldump db | gzip >db.sql.gz"
mysqldump -uroot -proot $@
+18
View File
@@ -0,0 +1,18 @@
Scripts in this directory will be executed on the host
but they can take easily take action on containers by using
`ddev exec`. A number of environment variables are supplied to the scripts
including:
DDEV_APPROOT: file system location of the project on the host)
DDEV_HOST_DB_PORT: Localhost port of the database server
DDEV_HOST_WEBSERVER_PORT: Localhost port of the webserver
DDEV_HOST_HTTPS_PORT: Localhost port for https on webserver
DDEV_DOCROOT: Relative path from approot to docroot
DDEV_HOSTNAME: Comma-separated list of FQDN hostnames
DDEV_PHP_VERSION
DDEV_WEBSERVER_TYPE: nginx-fpm, apache-fpm, apache-cgi
DDEV_PROJECT_TYPE: drupal8, typo3, backdrop, wordpress, etc.
DDEV_ROUTER_HTTP_PORT: Router port for http
DDEV_ROUTER_HTTPS_PORT: Router port for https
More environment variables may be available, see https://github.com/drud/ddev/blob/52c7915dee41d4846f9f619520b726994c0372c5/pkg/ddevapp/ddevapp.go#L1006-L1030
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
## #ddev-generated
## Description: Launch a browser with the current site
## Usage: launch [path]
## Example: "ddev launch" or "ddev launch /admin/reports/status/php" or "ddev launch phpinfo.php"
FULLURL=${DDEV_PRIMARY_URL}
if [ -n "${1:-}" ] ; then
if [[ ${1::1} != "/" ]] ; then
FULLURL="${FULLURL}/";
fi
FULLURL="${FULLURL}${1}";
fi
case $OSTYPE in
linux-gnu)
xdg-open ${FULLURL}
;;
"darwin"*)
open ${FULLURL}
;;
"win*"* | "msys"*)
start ${FULLURL}
;;
esac
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
## #ddev-generated
## Description: Run MySQLWorkbench against current db
## Usage: mysqlworkbench
## Example: "ddev mysqlworkbench"
# Note that this examle uses $DDEV_HOST_DB_PORT to get the port for the connection
# Mysql Workbench can be obtained from https://dev.mysql.com/downloads/workbench/
query="root:[email protected]:${DDEV_HOST_DB_PORT}"
case $OSTYPE in
linux-gnu)
# You may need "apt-get install libproj-dev gnome-keyring" if it complains about those
mysql-workbench --query "$query" &
echo "Attempted to launch mysql-workbench"
;;
"darwin"*)
"/Applications/MySQLWorkbench.app/Contents/MacOS/MySQLWorkbench" --query "$query" &
echo "Attempted to launch MySQLWorkbench.app"
;;
"win*"* | "msys"*)
# 'C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqlworkbench.exe'
# You may need to add it to your system %PATH% or change the path here
# On docker toolbox you'll need to change the query to use the toolbox IP address,
# likely 192.168.99.100
'C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqlworkbench.exe' --query "$query"
#;;
esac
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
## #ddev-generated
## Description: Open PHPStorm with the current project
## Usage: phpstorm
## Example: "ddev phpstorm"
# Example is macOS-specific, but easy to adapt to any OS
open -a PHPStorm.app ${DDEV_APPROOT}
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
## #ddev-generated
## Description: Tail the main solr log
## Usage: solrtail
## Example: ddev solrtail
# This can't work unless you have a solr service,
# See https://ddev.readthedocs.io/en/stable/users/extend/additional-services/#apache-solr
ddev exec -s solr tail -40lf /opt/solr/server/logs/solr.log
+24
View File
@@ -0,0 +1,24 @@
Scripts in this directory will be executed inside the solr
container (if it exists, of course). This is just an example,
but any named service can have a directory with commands.
Note that /mnt/ddev_config must be mounted into the 3rd-party service
with a stanza like this in the docker-compose.solr.yaml:
volumes:
- type: "bind"
source: "."
target: "/mnt/ddev_config"
A number of environment variables are supplied to the scripts, including:
DDEV_DOCROOT: Relative path from approot to docroot
DDEV_HOSTNAME: Comma-separated list of FQDN hostnames
DDEV_PHP_VERSION
DDEV_WEBSERVER_TYPE: nginx-fpm, apache-fpm, apache-cgi
DDEV_PROJECT_TYPE: drupal8, typo3, backdrop, wordpress, etc.
DDEV_ROUTER_HTTP_PORT: Router port for http
DDEV_ROUTER_HTTPS_PORT: Router port for https
More environment variables may be available, see https://github.com/drud/ddev/blob/52c7915dee41d4846f9f619520b726994c0372c5/pkg/ddevapp/ddevapp.go#L1006-L1030
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
## #ddev-generated
## Description: Tail the main solr log
## Usage: solrtail
## Example: ddev solrtail
# This example runs inside the solr container.
# Note that this requires that /mnt/ddev_config be mounted
# into the solr container and of course that you have a container
# named solr.
tail -f /opt/solr/server/logs/solr.log
+20
View File
@@ -0,0 +1,20 @@
Scripts in this directory will be executed inside the web
container. You can copy the example file or just rename it:
`mv drush.example drush`, for example, and it will become
a live command.
A number of environment variables are supplied to the scripts, including:
DDEV_APPROOT: file system location of the project on the host)
DDEV_HOST_DB_PORT: Localhost port of the database server
DDEV_HOST_WEBSERVER_PORT: Localhost port of the webserver
DDEV_HOST_HTTPS_PORT: Localhost port for https on webserver
DDEV_DOCROOT: Relative path from approot to docroot
DDEV_HOSTNAME: Comma-separated list of FQDN hostnames
DDEV_PHP_VERSION
DDEV_WEBSERVER_TYPE: nginx-fpm, apache-fpm, apache-cgi
DDEV_PROJECT_TYPE: drupal8, typo3, backdrop, wordpress, etc.
DDEV_ROUTER_HTTP_PORT: Router port for http
DDEV_ROUTER_HTTPS_PORT: Router port for https
More environment variables may be available, see https://github.com/drud/ddev/blob/52c7915dee41d4846f9f619520b726994c0372c5/pkg/ddevapp/ddevapp.go#L1006-L1030
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
## #ddev-generated
## Description: Run drush inside the web container
## Usage: drush [flags] [args]
## Example: "ddev drush uli" or "ddev drush sql-cli" or "ddev drush --version"
drush $@
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
## #ddev-generated
## Description: Reload config for nginx and php-fpm inside web container
## Usage: restart-nginx
## Example: "ddev restart-nginx"
killall -HUP nginx php-fpm
+3 -147
View File
@@ -1,9 +1,9 @@
APIVersion: v1.12.1 APIVersion: v1.12.1
name: ep-reisen-web name: ep-reisen
type: typo3 type: typo3
docroot: public docroot: public
php_version: "7.3" php_version: "7.3"
webserver_type: nginx-fpm webserver_type: apache-cgi
router_http_port: "80" router_http_port: "80"
router_https_port: "443" router_https_port: "443"
xdebug_enabled: false xdebug_enabled: false
@@ -12,148 +12,4 @@ additional_fqdns: []
nfs_mount_enabled: true nfs_mount_enabled: true
provider: default provider: default
use_dns_when_possible: true use_dns_when_possible: true
timezone: "" timezone: "Europe/Berlin"
# This config.yaml was created with ddev version v1.12.1
# webimage: drud/ddev-webserver:v1.12.1
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.12.0
# dbaimage: drud/phpmyadmin:v1.12.0
# bgsyncimage: drud/ddev-bgsync:v1.12.0
# However we do not recommend explicitly wiring these images into the
# config.yaml as they may break future versions of ddev.
# You can update this config.yaml using 'ddev config'.
# Key features of ddev's config.yaml:
# name: <projectname> # Name of the project, automatically provides
# http://projectname.ddev.site and https://projectname.ddev.site
# type: <projecttype> # drupal6/7/8, backdrop, typo3, wordpress, php
# docroot: <relative_path> # Relative path to the directory containing index.php.
# php_version: "7.2" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
# is not recommended, as the images are often closely tied to ddev's' behavior,
# so this can break upgrades.
# webimage: <docker_image> # nginx/php docker image.
# dbimage: <docker_image> # mariadb docker image.
# dbaimage: <docker_image>
# bgsyncimage: <docker_image>
# mariadb_version and mysql_version
# ddev can use many versions of mariadb and mysql
# However these directives are mutually exclusive
# mariadb_version: 10.2
# mysql_version: 8.0
# router_http_port: <port> # Port to be used for http (defaults to port 80)
# router_https_port: <port> # Port for https (defaults to 443)
# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart"
# Note that for most people the commands
# "ddev exec enable_xdebug" and "ddev exec disable_xdebug" work better,
# as leaving xdebug enabled all the time is a big performance hit.
# webserver_type: nginx-fpm # Can be set to apache-fpm or apache-cgi as well
# timezone: Europe/Berlin
# This is the timezone used in the containers and by PHP;
# it can be set to any valid timezone,
# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# For example Europe/Dublin or MST7MDT
# additional_hostnames:
# - somename
# - someothername
# would provide http and https URLs for "somename.ddev.site"
# and "someothername.ddev.site".
# additional_fqdns:
# - example.com
# - sub1.example.com
# would provide http and https URLs for "example.com" and "sub1.example.com"
# Please take care with this because it can cause great confusion.
# upload_dir: custom/upload/dir
# would set the destination path for ddev import-files to custom/upload/dir.
# working_dir:
# web: /var/www/html
# db: /home
# would set the default working directory for the web and db services.
# These values specify the destination directory for ddev ssh and the
# directory in which commands passed into ddev exec are run.
# omit_containers: ["dba", "ddev-ssh-agent"]
# would omit the dba (phpMyAdmin) and ddev-ssh-agent containers. Currently
# only those two containers can be omitted here.
# Note that these containers can also be omitted globally in the
# ~/.ddev/global_config.yaml or with the "ddev config global" command.
# nfs_mount_enabled: false
# Great performance improvement but requires host configuration first.
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
# webcache_enabled: false (deprecated)
# Was only for macOS, but now deprecated.
# See https://ddev.readthedocs.io/en/stable/users/performance/#webcache
# host_https_port: "59002"
# The host port binding for https can be explicitly specified. It is
# dynamic unless otherwise specified.
# This is not used by most people, most people use the *router* instead
# of the localhost port.
# host_webserver_port: "59001"
# The host port binding for the ddev-webserver can be explicitly specified. It is
# dynamic unless otherwise specified.
# This is not used by most people, most people use the *router* instead
# of the localhost port.
# host_db_port: "59002"
# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic
# unless explicitly specified.
# phpmyadmin_port: "1000"
# The PHPMyAdmin port can be changed from the default 8036
# mailhog_port: "1001"
# The MailHog port can be changed from the default 8025
# webimage_extra_packages: [php-yaml, php7.3-ldap]
# Extra Debian packages that are needed in the webimage can be added here
# dbimage_extra_packages: [telnet,netcat]
# Extra Debian packages that are needed in the dbimage can be added here
# use_dns_when_possible: true
# If the host has internet access and the domain configured can
# successfully be looked up, DNS will be used for hostname resolution
# instead of editing /etc/hosts
# Defaults to true
# project_tld: ddev.site
# The top-level domain used for project URLs
# The default "ddev.site" allows DNS lookup via a wildcard
# If you prefer you can change this to "ddev.local" to preserve
# pre-v1.9 behavior.
# ngrok_args: --subdomain mysite --auth username:pass
# Provide extra flags to the "ngrok http" command, see
# https://ngrok.com/docs#http or run "ngrok http -h"
# provider: default # Currently either "default" or "pantheon"
#
# Many ddev commands can be extended to run tasks before or after the
# ddev command is executed, for example "post-start", "post-import-db",
# "pre-composer", "post-composer"
# See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
# information on the commands that can be extended and the tasks you can define
# for them. Example:
#hooks:
# post-start:
# - exec: composer install -d /var/www/html
+176
View File
@@ -0,0 +1,176 @@
version: '3.6'
#ddev-generated
services:
db:
container_name: ddev-${DDEV_SITENAME}-db
build:
context: '/Users/fromme/www/ep-reisen-web/.ddev/.dbimageBuild'
args:
BASE_IMAGE: $DDEV_DBIMAGE
username: 'fromme'
uid: '501'
gid: '20'
image: ${DDEV_DBIMAGE}-built
stop_grace_period: 60s
volumes:
- type: "volume"
source: mariadb-database
target: "/var/lib/mysql"
volume:
nocopy: true
- type: "bind"
source: "."
target: "/mnt/ddev_config"
- ddev-global-cache:/mnt/ddev-global-cache
restart: "no"
user: "$DDEV_UID:$DDEV_GID"
hostname: ep-reisen-web-db
ports:
- "127.0.0.1:$DDEV_HOST_DB_PORT:3306"
labels:
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.platform: ddev
com.ddev.app-type: typo3
com.ddev.approot: $DDEV_APPROOT
environment:
- COLUMNS=$COLUMNS
- LINES=$LINES
- TZ=
- DDEV_PROJECT=ep-reisen-web
command: "$DDEV_MARIADB_LOCAL_COMMAND"
healthcheck:
interval: 1s
retries: 30
start_period: 20s
timeout: 120s
web:
container_name: ddev-${DDEV_SITENAME}-web
build:
context: '/Users/fromme/www/ep-reisen-web/.ddev/.webimageBuild'
args:
BASE_IMAGE: $DDEV_WEBIMAGE
username: 'fromme'
uid: '501'
gid: '20'
image: ${DDEV_WEBIMAGE}-built
cap_add:
- SYS_PTRACE
volumes:
- type: volume
source: nfsmount
target: /var/www/html
volume:
nocopy: true
- ".:/mnt/ddev_config:ro"
- ddev-global-cache:/mnt/ddev-global-cache
- ddev-ssh-agent_socket_dir:/home/.ssh-agent
restart: "no"
user: "$DDEV_UID:$DDEV_GID"
hostname: ep-reisen-web-web
links:
- db:db
# ports is list of exposed *container* ports
ports:
- "127.0.0.1:$DDEV_HOST_WEBSERVER_PORT:80"
- "127.0.0.1:$DDEV_HOST_HTTPS_PORT:443"
environment:
- DOCROOT=$DDEV_DOCROOT
- DDEV_PHP_VERSION=$DDEV_PHP_VERSION
- DDEV_WEBSERVER_TYPE=$DDEV_WEBSERVER_TYPE
- DDEV_PROJECT_TYPE=$DDEV_PROJECT_TYPE
- DDEV_ROUTER_HTTP_PORT=$DDEV_ROUTER_HTTP_PORT
- DDEV_ROUTER_HTTPS_PORT=$DDEV_ROUTER_HTTPS_PORT
- DDEV_XDEBUG_ENABLED=$DDEV_XDEBUG_ENABLED
- DOCKER_IP=127.0.0.1
- HOST_DOCKER_INTERNAL_IP=
- DEPLOY_NAME=local
- VIRTUAL_HOST=$DDEV_HOSTNAME
- COLUMNS=$COLUMNS
- LINES=$LINES
- TZ=
# HTTP_EXPOSE allows for ports accepting HTTP traffic to be accessible from <site>.ddev.site:<port>
# To expose a container port to a different host port, define the port as hostPort:containerPort
- HTTP_EXPOSE=${DDEV_ROUTER_HTTP_PORT}:80,${DDEV_MAILHOG_PORT}:8025
# You can optionally expose an HTTPS port option for any ports defined in HTTP_EXPOSE.
# To expose an HTTPS port, define the port as securePort:containerPort.
- HTTPS_EXPOSE=${DDEV_ROUTER_HTTPS_PORT}:80
- SSH_AUTH_SOCK=/home/.ssh-agent/socket
- DDEV_PROJECT=ep-reisen-web
labels:
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.platform: ddev
com.ddev.app-type: typo3
com.ddev.approot: $DDEV_APPROOT
external_links:
- "ddev-router:ep-reisen-web.ddev.site"
healthcheck:
interval: 1s
retries: 10
start_period: 10s
timeout: 120s
dba:
container_name: ddev-${DDEV_SITENAME}-dba
image: $DDEV_DBAIMAGE
restart: "no"
labels:
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.platform: ddev
com.ddev.app-type: typo3
com.ddev.approot: $DDEV_APPROOT
links:
- db:db
ports:
- "80"
hostname: ep-reisen-web-dba
environment:
- PMA_USER=db
- PMA_PASSWORD=db
- VIRTUAL_HOST=$DDEV_HOSTNAME
- TZ=
# HTTP_EXPOSE allows for ports accepting HTTP traffic to be accessible from <site>.ddev.site:<port>
- HTTP_EXPOSE=${DDEV_PHPMYADMIN_PORT}:8036
healthcheck:
interval: 120s
timeout: 2s
retries: 1
networks:
default:
external:
name: ddev_default
volumes:
mariadb-database:
name: "${DDEV_SITENAME}-mariadb"
ddev-ssh-agent_socket_dir:
external: true
ddev-global-cache:
name: ddev-global-cache
nfsmount:
driver: local
driver_opts:
type: nfs
o: "addr=host.docker.internal,hard,nolock,rw"
device: ":/Users/fromme/www/ep-reisen-web"