Compare commits

..

8 Commits

21 changed files with 250 additions and 169 deletions

View File

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

View File

@ -3,37 +3,14 @@
Make sure to have a look at [UPDATING](https://github.com/cytopia/devilbox/blob/master/UPDATING.md) to see any required steps for updating Make sure to have a look at [UPDATING](https://github.com/cytopia/devilbox/blob/master/UPDATING.md) to see any required steps for updating
major versions. major versions.
## [unreleasd]
## Bugfix Release v1.0.1 (2019-03-24)
This is a bugfix release and everybody is encouraged to upgrade to this tag as soon as possible.
No explicit actions to be taken for updating.
#### Fixed
- [#373](https://github.com/cytopia/devilbox/issues/373) Read custom MySQL configuration
- [#540](https://github.com/cytopia/devilbox/issues/540) Fix '&' password substitution in mysqldump-secure
- [#209](https://github.com/cytopia/devilbox/issues/209) Documentation for Xdebug on Docker for Windows
#### Changed #### Changed
- Updated MongoDB cli tools in PHP image - Split Bind container into internal DNS and autoDNS: #248
- Updated PostgreSQL cli tools in PHP image - This fixes various issues with Docker Toolbox and DNS resolution: #119
- MySQL images are now bound to a specific Docker tag and are built nightly
- [#506](https://github.com/cytopia/devilbox/issues/506) Documentation improvements for connecting to databases
#### Added
- [#536](https://github.com/cytopia/devilbox/issues/536) Added @vue/cli and @vue/cli-service-global
## Release v1.0.0 (2019-03-19) ## v1.0.0-alpha1
This is the first major stable release of the Devilbox.
#### Changed
- Everything from v1.0.0-alpha1 has been backported
- Everything from v0.15.0 has been backported
## Pre-Release v1.0.0-alpha1 (2019-03-09)
#### Changed #### Changed
- Use Docker volumes instead of directory mounts for stateful data (MySQL, PgSQL and MongoDB) - Use Docker volumes instead of directory mounts for stateful data (MySQL, PgSQL and MongoDB)
@ -42,29 +19,7 @@ This is the first major stable release of the Devilbox.
- Use Official MySQL, MariaDB and Percona Docker container - Use Official MySQL, MariaDB and Percona Docker container
## Release v0.15.0 (2019-03-09) ## v0.15.0
This will be the last v0.x release.
#### Fixed
- break on errors in wrong vhost-gen overwrite
- XSS vulnerability in email display
- Various fixes in Documentation
- vhost-gen fixes
#### Changed
- Use semantic versioning
- This allows for faster releases
- This allows for better visibility of breaking changes (note that breaking changes might still occur before release v1.0.0)
- Autologin for phpMyAdmin
- Autologin for phpPgAdmin
- Intranet to show vhost and vhost-gen overwrite config per vhost
- Allow to specify Redis startup arguments (e.g.: password)
- Fixed hostnames for all Docker container
- PHP-FPM workers changed from `dynamic` to `ondemand`
- Allow Apache to server underscore domains
- Changed Nginx `client_max_body_size` to `0` to be in sync with Apache
- Document failing start behaviour of MySQL container
#### Added #### Added
- [CHANGELOG](https://github.com/cytopia/devilbox/blob/master/CHANGELOG.md) by the standard of: https://keepachangelog.com - [CHANGELOG](https://github.com/cytopia/devilbox/blob/master/CHANGELOG.md) by the standard of: https://keepachangelog.com
@ -83,7 +38,6 @@ This will be the last v0.x release.
- PHP 5.2 - PHP 5.2
- PHP 5.3 - PHP 5.3
- PHP 7.4 - PHP 7.4
- PHP 8.0
- Alpine images where possible - Alpine images where possible
- Docker Compose overwrite images: - Docker Compose overwrite images:
- Blackfire - Blackfire
@ -128,3 +82,22 @@ This will be the last v0.x release.
- Typo3 - Typo3
- GitHub Issue templates - GitHub Issue templates
- Discourse forum link: https://devilbox.discourse.group - Discourse forum link: https://devilbox.discourse.group
#### Changed
- Use semantic versioning
- This allows for faster releases
- This allows for better visibility of breaking changes (note that breaking changes might still occur before release v1.0.0)
- Autologin for phpMyAdmin
- Autologin for phpPgAdmin
- Intranet to show vhost and vhost-gen overwrite config per vhost
- Allow to specify Redis startup arguments (e.g.: password)
- Fixed hostnames for all Docker container
- PHP-FPM workers changed from `dynamic` to `ondemand`
- Allow Apache to server underscore domains
- Changed Nginx `client_max_body_size` to `0` to be in sync with Apache
#### Fixed
- break on errors in wrong vhost-gen overwrite
- XSS vulnerability in email display
- Various fixes in Documentation
- vhost-gen fixes

View File

@ -773,7 +773,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| tidy | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | tidy | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| tokenizer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | tokenizer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| uploadprogress | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | uploadprogress | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| xdebug | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | xdebug | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| xml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | xml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| xmlreader | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | xmlreader | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |

View File

@ -95,7 +95,7 @@ services:
# PHP # PHP
# ------------------------------------------------------------ # ------------------------------------------------------------
php: php:
image: devilbox/php-fpm:${PHP_SERVER}-work-0.81 image: devilbox/php-fpm:${PHP_SERVER}-work-0.80
hostname: php hostname: php
## ##
@ -309,7 +309,7 @@ services:
# MySQL Database # MySQL Database
# ------------------------------------------------------------ # ------------------------------------------------------------
mysql: mysql:
image: devilbox/mysql:${MYSQL_SERVER}-0.3 image: devilbox/mysql:${MYSQL_SERVER}
hostname: mysql hostname: mysql
environment: environment:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,9 +1,3 @@
.. |ext_lnk_blog_openstream| raw:: html
<a target="_blank" href="https://www.openstream.ch/developer-blog/devilbox/">
Docker LAMP Stack for WordPress and Magento <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_blog_deliciousbrains| raw:: html .. |ext_lnk_blog_deliciousbrains| raw:: html
<a target="_blank" href="https://deliciousbrains.com/devilbox-local-wordpress-development-docker/"> <a target="_blank" href="https://deliciousbrains.com/devilbox-local-wordpress-development-docker/">

View File

@ -231,12 +231,6 @@
Text-mode Interface for Git <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" /> Text-mode Interface for Git <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a> </a>
.. |ext_lnk_tool_vue| raw:: html
<a target="_blank" href="https://cli.vuejs.org">
Standard Tooling for Vue.js Development <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_webpack| raw:: html .. |ext_lnk_tool_webpack| raw:: html
<a target="_blank" href="https://webpack.js.org"> <a target="_blank" href="https://webpack.js.org">

View File

@ -0,0 +1,7 @@
.. raw:: html
<div style="background-color:#dddcb7; border: 3px solid #DA111A; padding:10px 20px; margin-bottom:20px;">
<h1 style="margin-bottom:15px;">Important Announcement</h1>
<p style="margin:5px;">Everybody is strongly encouraged to switch to the upcoming v1.0.0 release version to prevent unforseen issues upon merge to master.</p>
<p style="margin:5px;"><strong>Instructions here:</strong> <a target="_blank" href="https://github.com/cytopia/devilbox/pull/416">https://github.com/cytopia/devilbox/pull/416</a>.</p>
</div>

View File

@ -1,19 +0,0 @@
+---------------------------+-------+----------+----------------+
| Container | Name | Hostname | IP Address |
+===========================+=======+==========+================+
| DNS | bind | bind | 172.16.238.100 |
+---------------------------+-------+----------+----------------+
| PHP | php | php | 172.16.238.10 |
+---------------------------+-------+----------+----------------+
| Apache, Nginx | httpd | httpd | 172.16.238.11 |
+---------------------------+-------+----------+----------------+
| MySQL, MariaDB, PerconaDB | mysql | mysql | 172.16.238.12 |
+---------------------------+-------+----------+----------------+
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
+---------------------------+-------+----------+----------------+
| Redis | redis | redis | 172.16.238.14 |
+---------------------------+-------+----------+----------------+
| Memcached | memcd | memcd | 172.16.238.15 |
+---------------------------+-------+----------+----------------+
| MongoDB | mongo | mongo | 172.16.238.16 |
+---------------------------+-------+----------+----------------+

View File

@ -9,7 +9,7 @@ Setup Wordpress
This example will use ``git`` to install Wordpress from within the Devilbox PHP container. This example will use ``git`` to install Wordpress from within the Devilbox PHP container.
After completing the below listed steps, you will have a working Wordpress setup ready to be After completing the below listed steps, you will have a working Laravel setup ready to be
served via http and https. served via http and https.
.. seealso:: |ext_lnk_example_wordpress_documentation| .. seealso:: |ext_lnk_example_wordpress_documentation|

View File

@ -74,11 +74,19 @@ PHP project hostname settings
============================= =============================
When configuring your PHP projects to use MySQL, PostgreSQL, Redis, Mongo and other services, When configuring your PHP projects to use MySQL, PostgreSQL, Redis, Mongo and other services,
make sure to set the hostname/address of each of those services to how they are defined within the make sure to set the hostname of each of those services to ``127.0.0.1``.
Devilbox network:
.. include:: /_includes/snippets/core-container.rst **Why is that?**
The PHP container port-forwards each service port to its own listen address on ``127.0.0.1``.
The Devilbox also exposes each of those service ports to the host operating system on ``127.0.0.1``.
This allows you to keep your project configuration unchanged and have the same behaviour inside the
PHP container and on your host operating system.
.. important::
Do not mix up ``localhost`` with ``127.0.0.1``. They behave differently!
Use ``127.0.0.1`` and do not use ``localhost``.
As an example, if you want to access the MySQL database from within the PHP container, you do the As an example, if you want to access the MySQL database from within the PHP container, you do the
following: following:
@ -93,11 +101,10 @@ following:
host> ./shell.sh host> ./shell.sh
# Enter the MySQL console # Enter the MySQL console
php> mysql -u root -h mysql -p php> mysql -u root -h 127.0.0.1 -p
mysql> mysql>
To access the MySQL database from your host operating system you would need the address to what it The very same command applies to access the MySQL database from your host operating system:
exposes to on your host (usually ``127.0.0.1``):
.. code-block:: bash .. code-block:: bash
:emphasize-lines: 2 :emphasize-lines: 2
@ -106,14 +113,17 @@ exposes to on your host (usually ``127.0.0.1``):
host> mysql -u root -h 127.0.0.1 -p host> mysql -u root -h 127.0.0.1 -p
mysql> mysql>
Any of your projects php files that configure MySQL as an example should point the hostname So no matter if you use the Devilbox or have another LAMP stack installed locally on your host
or IP address of the MySQL server to ``mysql``: operating system, you do not have to change your configuration files if you stick to this tip.
So any of your projects php files that configure MySQL as an example should point the hostname
or IP address of the MySQL server to ``127.0.0.1``:
.. code-block:: php .. code-block:: php
<?php <?php
// MySQL server connection in your project configuration // MySQL server connection in your project configuration
mysql_host = 'mysql'; mysql_host = '127.0.0.1';
mysql_port = '3306'; mysql_port = '3306';
mysql_user = 'someusername'; mysql_user = 'someusername';
mysql_pass = 'somepassword'; mysql_pass = 'somepassword';
@ -125,11 +135,11 @@ or IP address of the MySQL server to ``mysql``:
Timezone Timezone
======== ========
The :ref:`env_timezone` value will affect PHP and web serverequally. It does The :ref:`env_timezone` value will affect PHP, web server and MySQL container equally. It does
however not affect any other official Docker container that are used within the Devilbox. This is however not affect any other official Docker container that are used within the Devilbox. This is
an issue that is currently still being worked on. an issue that is currently still being worked on.
Feel free to change this to any timezone you require for PHP, but keep in mind that Feel free to change this to any timezone you require for PHP and MySQL, but keep in mind that
timezone values for databases can be painful, once you want to switch to a different timezone. timezone values for databases can be painful, once you want to switch to a different timezone.
A good practice is to always use ``UTC`` on databases and have your front-end application calculate A good practice is to always use ``UTC`` on databases and have your front-end application calculate

View File

@ -36,14 +36,41 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``. via ``xdebug.remote_host``.
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will When gathering the Windows host IP address you will need to distinguish between two cases depending
use the ``Default Switch`` automatically. on your configuration:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst 1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line 1. Open command line
2. Enter ``ipconfig`` 2. Enter ``ipconfig``
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``) 3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst .. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,14 +36,41 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``. via ``xdebug.remote_host``.
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will When gathering the Windows host IP address you will need to distinguish between two cases depending
use the ``Default Switch`` automatically. on your configuration:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst 1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line 1. Open command line
2. Enter ``ipconfig`` 2. Enter ``ipconfig``
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``) 3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst .. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,14 +36,41 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``. via ``xdebug.remote_host``.
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will When gathering the Windows host IP address you will need to distinguish between two cases depending
use the ``Default Switch`` automatically. on your configuration:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst 1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line 1. Open command line
2. Enter ``ipconfig`` 2. Enter ``ipconfig``
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``) 3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst .. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,14 +36,41 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``. via ``xdebug.remote_host``.
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will When gathering the Windows host IP address you will need to distinguish between two cases depending
use the ``Default Switch`` automatically. on your configuration:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst 1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line 1. Open command line
2. Enter ``ipconfig`` 2. Enter ``ipconfig``
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``) 3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst .. include:: /_includes/figures/xdebug/windows/ipconfig.rst
@ -110,7 +137,7 @@ You will need to configure the path mapping in ``launch.json`` (VSCode configura
"request": "launch", "request": "launch",
"port": 9000, "port": 9000,
"pathMappings": { "pathMappings": {
"/shared/httpd/mytest/htdocs": "${workspaceRoot}/htdocs" "/shared/httpd/mytest/htdocs": "${workspaceFolder}/htdocs"
} }
}, { }, {
"name": "Launch currently open script", "name": "Launch currently open script",

View File

@ -171,36 +171,71 @@ See the following table for a few examples:
IP address mappings IP address mappings
------------------- -------------------
The following table shows a mapping of IP addresses and hostnames. In other words, when you are inside The following table shows a mapping of IP addresses of available service from the perspective
the PHP container, you can reach the services via the below defined IP addresses or hostnames: of your host operating system and from within the PHP container.
.. include:: /_includes/snippets/core-container.rst +--------------+-----------------+------------------------------+
| Service | IP from host os | IP from within PHP container |
+==============+=================+==============================+
| PHP | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Apache/Nginx | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| MySQL | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| PostgreSQL | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Redis | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Memcached | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| MongoDB | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
.. note:: It is recommended to use hostnames as they can be remembered much easiert. As you can see, everyhing is available under ``127.0.0.1``.
An example to access the MySQL database from within the PHP container: The PHP container is using ``socat`` to forward the services from all other available containers
to its own ``127.0.0.1`` address.
An example to access the MySQL database from either host or within the PHP container is the same:
.. code-block:: bash .. code-block:: bash
# Access MySQL from your host operating system # Access MySQL from your host operating system
host> mysql -h 127.0.0.1 -u root -p host> mysql -h 127.0.0.1
# Access MySQL from within the PHP container # Access MySQL from within the PHP container
devilbox@php-7.0.19 in /shared/httpd $ mysql -h mysql -u root -p devilbox@php-7.0.19 in /shared/httpd $ mysql -h 127.0.0.1
.. important::
Do not use ``localhost`` to access the services, it does not map to ``127.0.0.1`` on
all cases.
So when setting up a configuration file from your PHP project you would for example use So when setting up a configuration file from your PHP project you would for example use
``mysql`` as the host for your MySQL database connection: ``127.0.0.`` as the host for your MySQL database connection:
.. code-block:: php .. code-block:: php
<?php <?php
// MySQL server connection // MySQL server connection
mysql_host = 'mysql'; mysql_host = '127.0.0.1';
mysql_port = '3306'; mysql_port = '3306';
mysql_user = 'someusername'; mysql_user = 'someusername';
mysql_pass = 'somepassword'; mysql_pass = 'somepassword';
?> ?>
Imagine your PHP framework ships a command line tool to run database migration. You could run
it from your host operating system or from within the PHP container. It would work from both
sides as the connection to the database is exactly the same locally or within the container.
You could also even switch between the Devilbox and a locally installed LAMP stack
and still use the same configuration.
.. important::
The mapping of ``127.0.0.1`` to your host operating system does not work with
Docker Toolbox out of the box. In order to achieve the same behaviour read up on:
:ref:`howto_docker_toolbox_and_the_devilbox`.
Port mappings Port mappings
------------- -------------
@ -248,5 +283,7 @@ Checklist
2. You know how to become root inside the PHP container 2. You know how to become root inside the PHP container
3. You know how to leave the container 3. You know how to leave the container
4. You know that file and directory permissions are synronized 4. You know that file and directory permissions are synronized
5. You know by what hostnames you can reach a specific service 5. You know that ``127.0.0.1`` is available on your host and inside the PHP container
6. You know that project urls are available inside the container and on your host 6. You know that ports are the same inside the container and on your host os
7. You know that project urls are available inside the container and on your host
8. You know about the limitations of :ref:`howto_docker_toolbox_and_the_devilbox`

View File

@ -18,7 +18,25 @@ Core container
These container are well integrated into the Devilbox intranet and are considered core container: These container are well integrated into the Devilbox intranet and are considered core container:
.. include:: /_includes/snippets/core-container.rst +---------------------------+-------+----------+----------------+
| Container | Name | Hostname | IP Address |
+===========================+=======+==========+================+
| DNS | bind | bind | 172.16.238.100 |
+---------------------------+-------+----------+----------------+
| PHP | php | php | 172.16.238.10 |
+---------------------------+-------+----------+----------------+
| Apache, Nginx | httpd | httpd | 172.16.238.11 |
+---------------------------+-------+----------+----------------+
| MySQL, MariaDB, PerconaDB | mysql | mysql | 172.16.238.12 |
+---------------------------+-------+----------+----------------+
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
+---------------------------+-------+----------+----------------+
| Redis | redis | redis | 172.16.238.14 |
+---------------------------+-------+----------+----------------+
| Memcached | memcd | memcd | 172.16.238.15 |
+---------------------------+-------+----------+----------------+
| MongoDB | mongo | mongo | 172.16.238.16 |
+---------------------------+-------+----------+----------------+
Additional container Additional container

View File

@ -91,8 +91,6 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+ +----------------------+---------------------------------------+
| ``tig`` | |ext_lnk_tool_tig| | | ``tig`` | |ext_lnk_tool_tig| |
+----------------------+---------------------------------------+ +----------------------+---------------------------------------+
| ``vue`` | |ext_lnk_tool_vue| |
+----------------------+---------------------------------------+
| ``webpack`` | |ext_lnk_tool_webpack| | | ``webpack`` | |ext_lnk_tool_webpack| |
+----------------------+---------------------------------------+ +----------------------+---------------------------------------+
| ``wp`` | |ext_lnk_tool_wp| | | ``wp`` | |ext_lnk_tool_wp| |

View File

@ -46,8 +46,6 @@ The following shows a list of blogs that give a nice and objective introduction
+---------------------------------+----------+ +---------------------------------+----------+
| |ext_lnk_blog_moritzkanzler| | German | | |ext_lnk_blog_moritzkanzler| | German |
+---------------------------------+----------+ +---------------------------------+----------+
| |ext_lnk_blog_openstream| | English |
+---------------------------------+----------+
Use-cases Use-cases

View File

@ -110,27 +110,6 @@ A few general things you should always do before attempting to open up issues ar
that are shared by Docker. If not add those in the Docker settings. that are shared by Docker. If not add those in the Docker settings.
No Space left on Device
-----------------------
If on Docker for Mac you get an error during docker pull similar to the following one:
.. code-block:: bash
write /var/lib/docker/tmp/GetImageBlob220119603: no space left on device
It means the file where MacOS stores the docker images is full. The usual way is to delete
unused images and volumes to free up space or increase this volumes size.
However, depending on the version of Docker some of the above suggestions may not work and you
have to get support from the docker/for-mac GitHub repository or forum.
.. seealso::
* https://github.com/cytopia/devilbox/issues/539
* https://github.com/docker/for-mac/issues/371#issuecomment-242047368
* https://forums.docker.com/t/no-space-left-on-device-error/10894
Address already in use Address already in use
---------------------- ----------------------
@ -308,22 +287,6 @@ To mitigate that issue, make sure that the ``swoole`` module is disabled in ``.e
Database issues Database issues
=============== ===============
SQLSTATE[HY000] [1130] Host '172.16.238.10' is not allowed to connect to this MariaDB server
--------------------------------------------------------------------------------------------
.. seealso:: :ref:`troubleshooting_cant_connect_to_mysql_adter_restart`
.. _troubleshooting_cant_connect_to_mysql_adter_restart:
Cannot connect to MySQL after restart
-------------------------------------
This error usually occurs when you import a MySQL dump including the mysql database itself, which
will overwrite the user permissions and thus you won't be able to connect anymore with the settings
specified in ``.env``.
.. seealso:: https://github.com/cytopia/devilbox/issues/542
Invalid bind mount spec Invalid bind mount spec
----------------------- -----------------------