Restore failed rebase

This commit is contained in:
cytopia 2019-02-28 14:31:18 +01:00
parent ef2f39f794
commit cfba16f887
No known key found for this signature in database
GPG Key ID: 6D56EDB8695128A2
26 changed files with 120 additions and 424 deletions

View File

@ -1,10 +0,0 @@
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

View File

@ -13,8 +13,8 @@ error_reporting(-1);
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
$DEVILBOX_VERSION = 'v0.15.0';
$DEVILBOX_DATE = '2019-03-18';
$DEVILBOX_VERSION = 'v1.0.0-alpha1';
$DEVILBOX_DATE = '2019-03-09';
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
//

View File

@ -679,14 +679,14 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<?php if ($avail_mysql): ?>
<tr>
<th>mysql</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_MYSQL_DATADIR').'/'.loadClass('Helper')->getEnv('MYSQL_SERVER'); ?></td>
<td>Docker volume</td>
<td>/var/lib/mysql</td>
</tr>
<?php endif; ?>
<?php if ($avail_pgsql): ?>
<tr>
<th>pgsql</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_PGSQL_DATADIR').'/'.loadClass('Helper')->getEnv('PGSQL_SERVER'); ?></td>
<td>Docker volume</td>
<td>/var/lib/postgresql/data/pgdata</td>
</tr>
<?php endif; ?>
@ -707,7 +707,7 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<?php if ($avail_mongo): ?>
<tr>
<th>mongo</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_MONGO_DATADIR'); ?></td>
<td>Docker volume</td>
<td>/data/db</td>
</tr>
<?php endif; ?>

3
.gitignore vendored
View File

@ -47,9 +47,12 @@
/cfg/mariadb-10.0/*.cnf
/cfg/mariadb-10.1/*.cnf
/cfg/mariadb-10.2/*.cnf
/cfg/mariadb-10.3/*.cnf
/cfg/mariadb-10.4/*.cnf
/cfg/percona-5.5/*.cnf
/cfg/percona-5.6/*.cnf
/cfg/percona-5.7/*.cnf
/cfg/percona-8.0/*.cnf
# Ignore custom PHP.ini configs
/cfg/php-ini-5.2/*.ini

View File

@ -142,9 +142,12 @@ env:
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.0
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.1
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.2
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.3
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.4
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.5
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.6
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.7
- S1=PHP V1=7.2 S2=MYSQL V2=percona-8.0
# PHP 7.2 vs PgSQL
- S1=PHP V1=7.2 S2=PGSQL V2=9.0
- S1=PHP V1=7.2 S2=PGSQL V2=9.1

View File

@ -16,6 +16,7 @@ major versions.
- Use Docker volumes instead of directory mounts for stateful data (MySQL, PgSQL and MongoDB)
- This fixes various mount issues on Windows: #175 #382
- This improves general performance
- Use Official MySQL, MariaDB and Percona Docker container
## v0.15.0

View File

@ -214,9 +214,9 @@ Every single attachable container comes with many different versions. In order t
<td><a target="_blank" title="Apache 2.2" href="https://github.com/devilbox/docker-apache-2.2">2.2</a></td>
<td><a target="_blank" title="Nginx stable" href="https://github.com/devilbox/docker-nginx-stable">stable</a></td>
<td><a target="_blank" title="PHP 5.2" href="https://github.com/devilbox/docker-php-fpm">5.2</a><sup>[1]</sup></td>
<td><a target="_blank" title="MySQL 5.5" href="https://github.com/cytopia/docker-mysql-5.5">5.5</a></td>
<td><a target="_blank" title="MariaDB 5.5" href="https://github.com/cytopia/docker-mariadb-5.5">5.5</a></td>
<td><a target="_blank" title="PerconaDB 5.5" href="https://github.com/cytopia/docker-percona-5.5">5.5</a></td>
<td><a target="_blank" title="MySQL 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="MariaDB 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="PerconaDB 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="PgSQL 9.0" href="https://github.com/docker-library/postgres">9.0</a></td>
<td><a target="_blank" title="Redis 2.8" href="https://github.com/docker-library/redis">2.8</a></td>
<td><a target="_blank" title="Memcached 1.4" href="https://github.com/docker-library/memcached">1.4</a></td>
@ -226,9 +226,9 @@ Every single attachable container comes with many different versions. In order t
<td><a target="_blank" title="Apache 2.4" href="https://github.com/devilbox/docker-apache-2.4">2.4</a></td>
<td><a target="_blank" title="Nginx mainline" href="https://github.com/devilbox/docker-nginx-mainline">mainline</a></td>
<td><a target="_blank" title="PHP 5.3" href="https://github.com/devilbox/docker-php-fpm">5.3</a></td>
<td><a target="_blank" title="MySQL 5.6" href="https://github.com/cytopia/docker-mysql-5.6">5.6</a></td>
<td><a target="_blank" title="MariaDB 10.0" href="https://github.com/cytopia/docker-mariadb-10.0">10.0</a></td>
<td><a target="_blank" title="PerconaDB 5.6" href="https://github.com/cytopia/docker-percona-5.6">5.6</a></td>
<td><a target="_blank" title="MySQL 5.6" href="https://github.com/devilbox/docker-mysql">5.6</a></td>
<td><a target="_blank" title="MariaDB 10.0" href="https://github.com/devilbox/docker-mysql">10.0</a></td>
<td><a target="_blank" title="PerconaDB 5.6" href="https://github.com/devilbox/docker-mysql">5.6</a></td>
<td><a target="_blank" title="PgSQL 9.1" href="https://github.com/docker-library/postgres">9.1</a></td>
<td><a target="_blank" title="Redis 3.0" href="https://github.com/docker-library/redis">3.0</a></td>
<td><a target="_blank" title="Memcached 1.5" href="https://github.com/docker-library/memcached">1.5</a></td>
@ -238,9 +238,9 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.4" href="https://github.com/devilbox/docker-php-fpm">5.4</a></td>
<td><a target="_blank" title="MySQL 5.7" href="https://github.com/cytopia/docker-mysql-5.7">5.7</a></td>
<td><a target="_blank" title="MariaDB 10.1" href="https://github.com/cytopia/docker-mariadb-10.1">10.1</a></td>
<td><a target="_blank" title="PerconaDB 5.7" href="https://github.com/cytopia/docker-percona-5.7">5.7</a></td>
<td><a target="_blank" title="MySQL 5.7" href="https://github.com/devilbox/docker-mysql">5.7</a></td>
<td><a target="_blank" title="MariaDB 10.1" href="https://github.com/devilbox/docker-mysql">10.1</a></td>
<td><a target="_blank" title="PerconaDB 5.7" href="https://github.com/devilbox/docker-mysql">5.7</a></td>
<td><a target="_blank" title="PgSQL 9.2" href="https://github.com/docker-library/postgres">9.2</a></td>
<td><a target="_blank" title="Redis 3.2" href="https://github.com/docker-library/redis">3.2</a></td>
<td><a target="_blank" title="Memcached latest" href="https://github.com/docker-library/memcached">latest</a></td>
@ -250,9 +250,9 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.5" href="https://github.com/devilbox/docker-php-fpm">5.5</a></td>
<td><a target="_blank" title="MySQL 8.0" href="https://github.com/cytopia/docker-mysql-8.0">8.0</a></td>
<td><a target="_blank" title="MariaDB 10.2" href="https://github.com/cytopia/docker-mariadb-10.2">10.2</a></td>
<td></td>
<td><a target="_blank" title="MySQL 8.0" href="https://github.com/devilbox/docker-mysql">8.0</a></td>
<td><a target="_blank" title="MariaDB 10.2" href="https://github.com/devilbox/docker-mysql">10.2</a></td>
<td><a target="_blank" title="PerconaDB 8.0" href="https://github.com/devilbox/docker-mysql">8.0</a></td>
<td><a target="_blank" title="PgSQL 9.3" href="https://github.com/docker-library/postgres">9.3</a></td>
<td><a target="_blank" title="Redis 4.0" href="https://github.com/docker-library/redis">4.0</a></td>
<td></td>
@ -263,7 +263,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="PHP 5.6" href="https://github.com/devilbox/docker-php-fpm">5.6</a></td>
<td></td>
<td><a target="_blank" title="MariaDB 10.3" href="https://github.com/cytopia/docker-mariadb-10.3">10.3</a></td>
<td><a target="_blank" title="MariaDB 10.3" href="https://github.com/devilbox/docker-mysql">10.3</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.4" href="https://github.com/docker-library/postgres">9.4</a></td>
<td><a target="_blank" title="Redis 5.0" href="https://github.com/docker-library/redis">5.0</a></td>
@ -275,7 +275,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="PHP 7.0" href="https://github.com/devilbox/docker-php-fpm">7.0</a></td>
<td></td>
<td></td>
<td><a target="_blank" title="MariaDB 10.4" href="https://github.com/devilbox/docker-mysql">10.4</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.5" href="https://github.com/docker-library/postgres">9.5</a></td>
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>

View File

@ -0,0 +1,5 @@
[mysqld]
;key_buffer_size=16M
[mysqldump]
;quick

View File

@ -0,0 +1,5 @@
[mysqld]
;key_buffer_size=16M
[mysqldump]
;quick

View File

@ -309,35 +309,12 @@ services:
# MySQL Database
# ------------------------------------------------------------
mysql:
image: cytopia/${MYSQL_SERVER}:latest
image: devilbox/mysql:${MYSQL_SERVER}
hostname: mysql
environment:
##
## Debug?
##
- DEBUG_COMPOSE_ENTRYPOINT
##
## Adjust timezone
##
- TIMEZONE
##
## Adjust Root password
##
- MYSQL_ROOT_PASSWORD
##
## Socket directory Path
##
- MYSQL_SOCKET_DIR=/tmp/mysql
##
## Runtime settings
##
- MYSQL_GENERAL_LOG=${MYSQL_GENERAL_LOG}
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
ports:
# [local-machine:]local-port:docker-port
@ -351,12 +328,6 @@ services:
# ---- Format: ----
# HOST-DIRECTORY : DOCKER-DIRECTORY
# Mount logs
- ${DEVILBOX_PATH}/log/${MYSQL_SERVER}:/var/log/mysql:rw${MOUNT_OPTIONS}
# Mount devilbox default overwrites
- ${DEVILBOX_PATH}/.devilbox/etc/${MYSQL_SERVER}:/etc/mysql/conf.d:ro${MOUNT_OPTIONS}
# Mount devilbox user-defined cnf files in order
# to overwrite the MySQL server configuration
- ${DEVILBOX_PATH}/cfg/${MYSQL_SERVER}:/etc/mysql/docker-default.d:ro${MOUNT_OPTIONS}
@ -427,13 +398,6 @@ services:
app_net:
ipv4_address: 172.16.238.14
volumes:
# ---- Format: ----
# HOST-DIRECTORY : DOCKER-DIRECTORY
# Mount logs
- ${DEVILBOX_PATH}/log/redis-${REDIS_SERVER}:/var/log/redis:rw${MOUNT_OPTIONS}
depends_on:
- bind
- php
@ -510,6 +474,7 @@ networks:
- subnet: 172.16.238.0/24
gateway: 172.16.238.1
################################################################################
# VOLUMES
################################################################################
@ -531,9 +496,11 @@ volumes:
devilbox-mariadb-10.1:
devilbox-mariadb-10.2:
devilbox-mariadb-10.3:
devilbox-mariadb-10.4:
devilbox-percona-5.5:
devilbox-percona-5.6:
devilbox-percona-5.7:
devilbox-percona-8.0:
# ------------------------------------------------------------
# Postgres

View File

@ -397,7 +397,7 @@ This is especially useful to keep PHP and database timezones in sync.
+-----------------------+----------------+-------------------+
| Name | Allowed values | Default value |
+=======================+================+===================+
| ``TIMEZONE`` | valid timezone | ``Europe/Berlin`` |
| ``TIMEZONE`` | valid timezone | ``UTC`` |
+-----------------------+----------------+-------------------+
Have a look at Wikipedia to get a list of valid timezones: |ext_lnk_doc_wiki_database_timezones|
@ -628,7 +628,7 @@ This variable choses your desired MySQL server version to be started.
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+================================================================================================+==================+
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.1`` |
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.3`` |
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -645,12 +645,14 @@ All values are already available in the ``.env`` file and just need to be commen
#MYSQL_SERVER=mysql-8.0
#MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
.. _env_pgsql_server:
@ -663,7 +665,7 @@ This variable choses your desired PostgreSQL server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``9.6`` |
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``11.1`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -674,13 +676,38 @@ All values are already available in the ``.env`` file and just need to be commen
host> grep PGSQL_SERVER .env
#PGSQL_SERVER=9.0
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.2-alpine
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.3-alpine
#PGSQL_SERVER=9.4
#PGSQL_SERVER=9.4-alpine
#PGSQL_SERVER=9.5
PGSQL_SERVER=9.6
#PGSQL_SERVER=9.5-alpine
#PGSQL_SERVER=9.6
#PGSQL_SERVER=9.6-alpine
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.0-alpine
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.1-alpine
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.2-alpine
#PGSQL_SERVER=10.3
#PGSQL_SERVER=10.3-alpine
#PGSQL_SERVER=10.4
#PGSQL_SERVER=10.4-alpine
#PGSQL_SERVER=10.5
#PGSQL_SERVER=10.5-alpine
#PGSQL_SERVER=10.6
#PGSQL_SERVER=10.6-alpine
#PGSQL_SERVER=11.0
#PGSQL_SERVER=11.0-alpine
PGSQL_SERVER=11.1
#PGSQL_SERVER=11.1-alpine
#PGSQL_SERVER=latest
#PGSQL_SERVER=alpine
.. note::
This is the official PostgreSQL server which might already have other tags available,
@ -698,7 +725,7 @@ This variable choses your desired Redis server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``4.0`` |
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``5.0`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -711,8 +738,15 @@ All values are already available in the ``.env`` file and just need to be commen
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.0-alpine
#REDIS_SERVER=3.2
REDIS_SERVER=4.0
#REDIS_SERVER=3.2-alpine
#REDIS_SERVER=4.0
#REDIS_SERVER=4.0-alpine
REDIS_SERVER=5.0
#REDIS_SERVER=5.0-alpine
#REDIS_SERVER=latest
#REDIS_SERVER=alpine
.. note::
This is the official Redis server which might already have other tags available,
@ -727,43 +761,26 @@ MEMCD_SERVER
This variable choses your desired Memcached server version to be started.
+-------------------------+-------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===============================================================================+==================+
| ``MEMCD_SERVER`` | ``1.4.21`` |br| ``1.4.22`` |br| ``1.4.23`` |br| ``1.4.24`` |br| and many more | ``1.5.2`` |
+-------------------------+-------------------------------------------------------------------------------+------------------+
+-------------------------+---------------------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+=============================================================================================+==================+
| ``MEMCD_SERVER`` | ``1.4`` |br| ``1.4-alpine`` |br| ``1.5`` |br| ``1.5-alpine`` |br| ``latest`` and ``alpine`` | ``1.5`` |
+-------------------------+---------------------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 24
:emphasize-lines: 5
host> grep MEMCD_SERVER .env
#MEMCD_SERVER=1.4.21
#MEMCD_SERVER=1.4.22
#MEMCD_SERVER=1.4.23
#MEMCD_SERVER=1.4.24
#MEMCD_SERVER=1.4.25
#MEMCD_SERVER=1.4.26
#MEMCD_SERVER=1.4.27
#MEMCD_SERVER=1.4.28
#MEMCD_SERVER=1.4.29
#MEMCD_SERVER=1.4.30
#MEMCD_SERVER=1.4.31
#MEMCD_SERVER=1.4.32
#MEMCD_SERVER=1.4.33
#MEMCD_SERVER=1.4.34
#MEMCD_SERVER=1.4.35
#MEMCD_SERVER=1.4.36
#MEMCD_SERVER=1.4.37
#MEMCD_SERVER=1.4.38
#MEMCD_SERVER=1.4.39
#MEMCD_SERVER=1.5.0
#MEMCD_SERVER=1.5.1
MEMCD_SERVER=1.5.2
#MEMCD_SERVER=1.4
#MEMCD_SERVER=1.4-alpine
MEMCD_SERVER=1.5
#MEMCD_SERVER=1.5-alpine
#MEMCD_SERVER=latest
#MEMCD_SERVER=alpine
.. note::
This is the official Memcached server which might already have other tags available,
@ -778,11 +795,11 @@ MONGO_SERVER
This variable choses your desired MongoDB server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| and many more | ``3.4`` |
+-------------------------+-------------------------------------------------------------------+------------------+
+-------------------------+----------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+============================================================================+==================+
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| ``4.0`` and ``latest`` | ``4.0`` |
+-------------------------+----------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -795,8 +812,10 @@ All values are already available in the ``.env`` file and just need to be commen
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
MONGO_SERVER=3.4
#MONGO_SERVER=3.5
#MONGO_SERVER=3.4
#MONGO_SERVER=3.6
MONGO_SERVER=4.0
#MONGO_SERVER=latest
.. note::
This is the official MongoDB server which might already have other tags available,
@ -904,134 +923,6 @@ always be ``/shared/httpd/``.
``docker-compose rm``.
.. _env_mysql_datadir:
HOST_PATH_MYSQL_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your MySQL data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_MYSQL_DATADIR`` | valid path | ``./data/mysql`` |
+------------------------------+----------------+------------------+
Each MySQL, MariaDB or PerconaDB version will have its own subdirectory, so when first running MySQL 5.5
and then starting MySQL 5.6, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable. (MySQL auto-upgrade certain older
data files to newer, but this process does not necessarily work the other way round and could result in failues).
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mysql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.7/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-8.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.7/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
.. _env_pgsql_datadir:
HOST_PATH_PGSQL_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your PostgreSQL data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_PGSQL_DATADIR`` | valid path | ``./data/pgsql`` |
+------------------------------+----------------+------------------+
Each PostgreSQL version will have its own subdirectory, so when first running PostgreSQL 9.1
and then starting PostgreSQL 10.0, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable.
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/pgsql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.6/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
.. _env_mongo_datadir:
HOST_PATH_MONGO_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your MongoDB data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_MONGO_DATADIR`` | valid path | ``./data/mongo`` |
+------------------------------+----------------+------------------+
Each MongoDB version will have its own subdirectory, so when first running MongoDB 2.8
and then starting MongoDB 3.5, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable.
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mongo/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 2.8/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.5/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
Docker host ports
=================
@ -1584,27 +1475,9 @@ be able to display information inside the bundled intranet.
Keep this variable in sync with the actual MySQL root password.
MYSQL_GENERAL_LOG
^^^^^^^^^^^^^^^^^
This variable controls the logging behaviour of the MySQL server (MySQL, MariaDB and PerconaDB).
As the Devilbox is intended to be used for development, this feature is turned on by default.
+-------------------------+-------------------+---------------------+
| Name | Allowed values | Default value |
+=========================+===================+=====================+
| ``MYSQL_GENERAL_LOG`` | ``0`` or ``1`` | ``0`` |
+-------------------------+-------------------+---------------------+
**MySQL documentation:**
"The general query log is a general record of what mysqld is doing. The server writes information to this log when clients connect or disconnect, and it logs each SQL statement received from clients. The general query log can be very useful when you suspect an error in a client and want to know exactly what the client sent to mysqld."
-- |ext_lnk_doc_mysql_query_log|
PostgreSQL
----------
PGSQL_ROOT_USER
^^^^^^^^^^^^^^^

View File

@ -38,6 +38,7 @@ See the directory structure for MySQL configuration directories inside ``./cfg/`
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.7/
@ -45,6 +46,7 @@ See the directory structure for MySQL configuration directories inside ``./cfg/`
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.7/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-8.0/
Customization is achieved by placing a file into ``cfg/mysql-X.X/``, ``cfg/mariadb-X.X/`` or
``cfg/percona-X-X`` (where ``X.X`` stands for your MySQL version).

View File

@ -34,86 +34,6 @@ Projects
:ref:`howto_move_projects_to_a_different_directory`
Follow this guide to keep your projects separated from the Devilbox git directory.
Databases
---------
Moving your projects out of the Devilbox git directory is one step, you still need to take care
about persistent data of all available databases as well.
Let's assume you desired location for database storage is at ``/home/user/workspace/db/``.
MySQL
^^^^^
All you have to to is to adjust the path of :ref:`env_mysql_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mysql_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_MYSQL_DATADIR=/home/user/workspace/db/mysql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mysql/`` will be mounted
into the MySQL container.
PostgreSQL
^^^^^^^^^^
All you have to to is to adjust the path of :ref:`env_pgsql_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_pgsql_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_PGSQL_DATADIR=/home/user/workspace/db/pgsql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/pqsql/`` will be mounted
into the PostgreSQL container.
MongoDB
^^^^^^^
All you have to to is to adjust the path of :ref:`env_mongo_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mongo_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_MONGO_DATADIR=/home/user/workspace/db/mongo
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mongo/`` will be mounted
into the MongoDB container.
Version control ``.env`` file
-----------------------------

View File

@ -36,10 +36,6 @@ The log directory structure would look something like this:
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error

View File

@ -141,13 +141,13 @@ You first need to find out the image name and then also the currently used image
host> grep 'image:' docker-compose.yml
image: cytopia/bind:0.11
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.13
image: cytopia/${MYSQL_SERVER:-mariadb-10.1}:latest
image: postgres:${PGSQL_SERVER:-9.6}
image: redis:${REDIS_SERVER:-3.2}
image: memcached:${MEMCD_SERVER:-latest}
image: mongo:${MONGO_SERVER:-latest}
image: devilbox/php-fpm:${PHP_SERVER}-work
image: devilbox/${HTTPD_SERVER}:0.13
image: devilbox/mysql-${MYSQL_SERVER}
image: postgres:${PGSQL_SERVER}
image: redis:${REDIS_SERVER}
image: memcached:${MEMCD_SERVER}
image: mongo:${MONGO_SERVER}
After having found the possible candidates, you will still have to find the corresponding value
inside the ``..env`` file. Let's do it for the PHP image:
@ -156,14 +156,14 @@ inside the ``..env`` file. Let's do it for the PHP image:
host> grep '^PHP_SERVER' .env
PHP_SERVER=5.6
PHP_SERVER=7.2
So now you can substitute the ``${PHP_SERVER}`` variable from the first command with ``5.6`` and
So now you can substitute the ``${PHP_SERVER}`` variable from the first command with ``7.2`` and
finally pull a newer version:
.. code-block:: bash
host> docker pull devilbox/php-fpm:5.6-work
host> docker pull devilbox/php-fpm:7.2-work
Not very efficient.

View File

@ -134,9 +134,9 @@ NEW_GID=1000
###
### Timezone for all dockers and service config files
### Timezone for PHP Docker container (system and php.ini)
###
TIMEZONE=Europe/Berlin
TIMEZONE=UTC
@ -288,9 +288,11 @@ HTTPD_SERVER=nginx-stable
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
###
@ -416,70 +418,6 @@ MOUNT_OPTIONS=
HOST_PATH_HTTPD_DATADIR=./data/www
###
### Local filesystem path to mysql/mariadb datadir.
###
### This can be an existing mysql data directory or empty.
### If it already is a mysql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mysql database will be
### created.
###
### Note: Inside this path, a subdirectory with the mysql|mariadb
### version will be created where the actual data resides.
### This is to protect databases from being altered by
### newer or older mysql|mariadb server versions.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MYSQL_DATADIR=./data/mysql
###
### Local filesystem path to postgresql datadir.
###
### This can be an existing postgresql data directory or empty.
### If it already is a postgresql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new postgresql database will be
### created.
###
### Note: Inside this path, a subdirectory with the postgresql
### version will be created where the actual data resides.
### This is to protect databases from being altered by
### newer or older postgres server versions.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_PGSQL_DATADIR=./data/pgsql
###
### Local filesystem path to mongodb datadir.
###
### This can be an existing mongodb data directory or empty.
### If it already is a mongodb data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mongodb database will be
### created.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MONGO_DATADIR=./data/mongo
################################################################################
###
@ -592,12 +530,6 @@ HTTPD_NGINX_WORKER_CONNECTIONS=1024
MYSQL_ROOT_PASSWORD=
###
### Custom MySQL Runtime Settings
###
MYSQL_GENERAL_LOG=0
###
### Expose MySQL Port to Host
###

View File

@ -70,10 +70,9 @@ fi
### MYSQL
###
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "mysql" ]; then
SUFFIX="$( grep -E '^\s+image:\s+cytopia/\${MYSQL_SERVER' "${CWD}/docker-compose.yml" | sed 's/.*://g' )"
IMAGES="$( grep -Eo '^#*MYSQL_SERVER=[-a-z]+[.0-9]*' "${CWD}/env-example" | sed 's/.*=//g' )"
echo "${IMAGES}" | while read version ; do
docker pull cytopia/${version}:${SUFFIX}
docker pull devilbox/mysql:${version}
done
fi