Add available tools

This commit is contained in:
cytopia 2018-03-17 12:21:46 +01:00
parent 83a3829206
commit 5f61d9d8e6
No known key found for this signature in database
GPG Key ID: 6D56EDB8695128A2
4 changed files with 204 additions and 2 deletions

View File

@ -7,3 +7,129 @@ installed on your host operating system.
The Devilbox already ships with many common developer tools which are installed inside each PHP
container, so why not make use of it.
The only thing you might need to install on your host operating system is your favourite IDE or
editor to actually start coding.
.. seealso::
If you want to find out what tools are available inside the PHP container, visit the
following section: :ref:`available_tools`.
**Table of Contents**
.. contents:: :local:
How to enter
============
.. note::
You can only enter the PHP container if it is running.
Linux and MacOS
---------------
On Linux and MacOS you can simply execute the provided shell script: ``shell.sh``. By doing so
it will enter you into the PHP container and bring you to ``/shared/httpd``.
.. code-block:: bash
# Execute on the host operating system
host> ./shell.sh
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
Windows
-------
On Windows you have a different script to enter the PHP container: ``shell.bat``.
Just run it and it will enter you into the PHP container and bring you to ``/shared/httpd``.
.. code-block:: bash
# Execute on the host operating system
C:/Users/user1/devilbox> shell.bat
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
How to become root
==================
When you enter the container with the provided scripts, you are doing so as the user ``devilbox``.
If you do need to perform any actions as root (such as installing new software), you can use
the password-less ``sudo``.
.. code-block:: bash
# Inside the PHP Linux container as user devilbox
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
# Now you are root and can do anything you want
root@php-7.0.19 in /shared/httpd $
.. note::
As this action is inside a Docker container, there is no difference between Linux, MacOS or
Windows. Every host operating system is using the same Docker container - equal accross all
platforms.
Directory mapping
=================
One thing you should understand is the relation between the directories on your host operating
system and the corresponding directory inside the PHP container.
The location of the data directory (:ref:`env_httpd_datadir`) on your host computer is controlled
via the ``HOST_PATH_HTTPD_DATADIR`` variable inside the ``.env`` file. No matter what location you
set it to, inside the container it will always be mapped to ``/shared/httpd``.
See the following table for a few examples:
+----------+-----------------------+----------------------+
| | Host operating system | Inside PHP container |
+==========+=======================+======================+
| Data dir | ``./www/data`` | ``/shared/httpd`` |
+----------+-----------------------+----------------------+
| Data dir | ``/home/user1/www`` | ``/shared/httpd`` |
+----------+-----------------------+----------------------+
| Data dir | ``/var/www`` | ``/shared/httpd`` |
+----------+-----------------------+----------------------+
Tools
=====
What is available
-----------------
There are lots of tools available, for a full overview see :ref:`available_tools`.
If you think you are missing a tool, install it yourself as root, or open up an issue on github
to get it backed into the Docker image permanently.
.. seealso:: :ref:`available_tools`
How to update them
------------------
There is no need to update the tools itself. All Docker images are rebuilt every night and
automatically pushed to Docker hub to ensure versions are outdated at a maximum of 24 hours.
The only thing you have to do, is to update the Docker images itself, simply by pulling a new version.
.. seealso:: :ref:`getting_started_update_the_docker_images`
Checklist
=========
* You know how to enter the PHP container on Linux, MacOS or Windows
* You know how to become ``root`` inside the PHP container
* You understand the directory relation between inside the container and your host operating system
* You know how to update the tools by pulling new versions of the Docker images

View File

@ -1,3 +1,5 @@
.. _getting_started_update_the_devilbox:
*******************
Update the Devilbox
*******************
@ -95,8 +97,10 @@ recreated during the next start.
:ref:`remove_stopped_container`
Update Docker container
=======================
.. _getting_started_update_the_docker_images:
Update Docker images
====================
Updating the git branch shouldn't be needed to often, most changes are actually shipped via newer
``Docker images``, so you should frequently update those.

View File

@ -104,6 +104,7 @@ devilbox documentation
installation/docker-installation
installation/docker-toolbox
readings/available-container
readings/available-tools
readings/remove-stopped-container
readings/syncronize-container-permissions

View File

@ -0,0 +1,71 @@
.. _available_tools:
***************
Available tools
***************
Each PHP container version brings the same tools, so you can safely switch versions without having
to worry to have less or more tools available.
+----------------------+---------------------------------------------------------------------+
| Binary | Tool |
+======================+=====================================================================+
| various binaries | `awesome-ci <https://github.com/cytopia/awesome-ci>`_ |
+----------------------+---------------------------------------------------------------------+
| ``brew`` | `Linux brew <http://linuxbrew.sh>`_ |
+----------------------+---------------------------------------------------------------------+
| ``composer`` | `Composer <https://getcomposer.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``drush`` | `Drush <http://www.drush.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``drupal`` | `Drupal Console <https://drupalconsole.com>`_ |
+----------------------+---------------------------------------------------------------------+
| ``eslint`` | `ESLint <https://eslint.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``git`` | `Git <https://git-scm.com>`_ |
+----------------------+---------------------------------------------------------------------+
| ``git-flow`` | `Git flow <https://github.com/nvie/gitflow>`_ |
+----------------------+---------------------------------------------------------------------+
| ``gulp`` | `Gulp <https://gulpjs.com/>`_ |
+----------------------+---------------------------------------------------------------------+
| ``grunt`` | `Grunt <https://gruntjs.com>`_ |
+----------------------+---------------------------------------------------------------------+
| ``jsonlint`` | `JSON lint <https://github.com/zaach/jsonlint>`_ |
+----------------------+---------------------------------------------------------------------+
| ``laravel`` | `Laravel installer <https://github.com/laravel/installer>`_ |
+----------------------+---------------------------------------------------------------------+
| ``mdl`` | `Markdown lint <https://github.com/markdownlint/markdownlint>`_ |
+----------------------+---------------------------------------------------------------------+
| ``mdlint`` | `MD Linter <https://github.com/ChrisWren/mdlint>`_ |
+----------------------+---------------------------------------------------------------------+
| ``mongo*`` | Various MongoDB client tools |
+----------------------+---------------------------------------------------------------------+
| ``mysql*`` | Various MySQL client tools |
+----------------------+---------------------------------------------------------------------+
| ``mysqldump-secure`` | `mysqldump-secure <https://mysqldump-secure.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``node`` | `Node <https://nodejs.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``npm`` | `NPM <https://www.npmjs.com>`_ |
+----------------------+---------------------------------------------------------------------+
| ``pg*`` | Various PostgreSQL client tools |
+----------------------+---------------------------------------------------------------------+
| ``phalcon`` | `Phalcon DevTools <https://github.com/phalcon/phalcon-devtools>`_ |
+----------------------+---------------------------------------------------------------------+
| ``scss-lint`` | `SCSS Lint <https://github.com/brigade/scss-lint>`_ |
+----------------------+---------------------------------------------------------------------+
| ``symfony`` | `Symfony installer <https://github.com/symfony/symfony-installer>`_ |
+----------------------+---------------------------------------------------------------------+
| ``tig`` | `Text-mode Interface for Git <https://github.com/jonas/tig>`_ |
+----------------------+---------------------------------------------------------------------+
| ``webpack`` | `Webpack <https://webpack.js.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``wp`` | `Wordpress CLI <https://wp-cli.org>`_ |
+----------------------+---------------------------------------------------------------------+
| ``yarn`` | `Yarn <https://yarnpkg.com/en>`_ |
+----------------------+---------------------------------------------------------------------+
.. note::
If you are in need of other tools, open up an issue at
`Github <https://github.com/cytopia/devilbox/issues>`_ and ask for it,
this can usually be implemented very quickly.