diff --git a/languages/en/installation-guide/docker/docker_compose.rst b/languages/en/installation-guide/docker/docker_compose.rst index 65fd28d7..c5713d51 100644 --- a/languages/en/installation-guide/docker/docker_compose.rst +++ b/languages/en/installation-guide/docker/docker_compose.rst @@ -34,6 +34,15 @@ Please be aware that you need **double quotes** around your variables in order f Please check the :ref:`environment variables ` to know what they stand for. +The Volumes +``````````` + +We're going to mount tuleap as a Filesystem mountpoint instead of a typical Docker volume : + - It eases configuration manipulation + - It allows a better Disk space management + - It allows easier Migration / Disaster Recovery if needed + - It allows easier backups + - There are no significant performance drop on Linux Tuleap Community ````````````````` @@ -58,7 +67,7 @@ Then create a ``compose.yaml`` file with following content: - "443:443" - "22:22" volumes: - - tuleap-data:/data + - /srv/tuleap/tuleap-data:/data depends_on: - db environment: @@ -70,17 +79,14 @@ Then create a ``compose.yaml`` file with following content: - DB_ADMIN_PASSWORD=${MYSQL_ROOT_PASSWORD} # This is for test purpose only. It's not advised to run a production database as a docker container - db: + mysql: image: mysql:8.0 command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--sql-mode=NO_ENGINE_SUBSTITUTION"] environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - - db-data:/var/lib/mysql + - /srv/tuleap/mysql-data:/var/lib/mysql - volumes: - tuleap-data: - db-data: Tuleap Enterprise ````````````````` @@ -117,7 +123,7 @@ Please check the :ref:`environment variables ` to - "443:443" - "22:22" volumes: - - tuleap-data:/data + - /srv/tuleap/tuleap-data:/data environment: - TULEAP_FQDN=${TULEAP_FQDN} - TULEAP_SYS_DBHOST=${DB_FQDN} @@ -128,8 +134,6 @@ Please check the :ref:`environment variables ` to - TULEAP_FPM_SESSION_MODE=redis - TULEAP_REDIS_SERVER=${REDIS_FQDN} - volumes: - tuleap-data: If you want to secure your server and use certificates, you may spawn a Reverse-Proxy in the stack. diff --git a/languages/en/installation-guide/docker/docker_standalone.rst b/languages/en/installation-guide/docker/docker_standalone.rst deleted file mode 100644 index 64647a06..00000000 --- a/languages/en/installation-guide/docker/docker_standalone.rst +++ /dev/null @@ -1,107 +0,0 @@ -Docker Standalone -================= - -For anything but tests, you should have a dedicated MySQL (**version 8.0**) and Redis or Valkey (last stable recommended) databases. - -At first run you will need to provide some information about the platform you want to deploy: - -* The Tuleap server name (without https) as ``TULEAP_FQDN`` environment variable -* The Database server name as ``TULEAP_SYS_DBHOST`` environment variable. See :ref:`database installation ` for specific configuration. -* The database admin user (root or equivalent) as ``DB_ADMIN_USER`` environment variable -* The database admin user password as ``DB_ADMIN_PASSWORD`` environment variable -* The database application user (typically ``tuleapadm``) password as ``TULEAP_SYS_DBPASSWD`` environment variable -* The Tuleap ``admin`` user password as ``SITE_ADMINISTRATOR_PASSWORD`` environment variable - -Please check the :ref:`environment variables ` to know what they stand for. - -.. warning:: - - You cannot enforce encryption of Redis communication if you enabled Subversion because the underlying code, written in perl, doesn't support encryption. - -The data volume must be mounted on ``/data`` inside the container. -When running, the container exposes the following ports: - -* ``80`` TCP http traffic, automatically redirected to ``443`` -* ``443`` TCP https traffic -* ``22`` TCP ssh traffic (for git) - -Tuleap Community -````````````````` - -You can init docker image in command line: - -.. code-block:: bash - - $ docker run -ti \ - --restart always \ - --publish 22:22 \ - --publish 80:80 \ - --publish 443:443 \ - --hostname tuleap-ce.example.com \ - -e TULEAP_FQDN=tuleap-ce.example.com \ - -e TULEAP_SYS_DBHOST=db-tuleap-ce.example.com \ - -e DB_ADMIN_USER=root \ - -e DB_ADMIN_PASSWORD=${MYSQL_ROOT_PASSWORD} \ - -e TULEAP_SYS_DBPASSWD=${TULEAP_SYS_DBPASSWD} \ - -e SITE_ADMINISTRATOR_PASSWORD=${SITE_ADMINISTRATOR_PASSWORD} \ - -e TULEAP_FPM_SESSION_MODE=redis \ - -e TULEAP_REDIS_SERVER=redis \ - -e TULEAP_REDIS_PASSWORD=${REDIS_PASSWORD} \ - -e TULEAP_EMAIL_TRANSPORT=smtp \ - -e TULEAP_EMAIL_RELAYHOST=your-smtp.example.com:2025 \ - -v /srv/path/to/data:/data - tuleap/tuleap-community-edition - -For future runs you don't need to pass all the environment variables: - -.. code-block:: bash - - $ docker run -d \ - --restart always \ - --publish 22:22 \ - --publish 80:80 \ - --publish 443:443 \ - --hostname tuleap-ce.example.com \ - -e TULEAP_FPM_SESSION_MODE=redis \ - -e TULEAP_REDIS_SERVER=redis \ - -e TULEAP_EMAIL_TRANSPORT=smtp \ - -e TULEAP_EMAIL_RELAYHOST=your-smtp.example.com:2025 \ - -v /srv/path/to/data:/data - tuleap/tuleap-community-edition - - -Tuleap Enterprise -````````````````` -.. attention:: - - This image is only available to :ref:`Tuleap Enterprise ` subscribers. Please contact your support - team to get your access to the private registry. - -You first need to authenticate towards Tuleap's registry: - -.. code-block:: bash - - $ docker login docker.tuleap.org - -You must specify the Tuleap tag you want to run (there is no ``:latest`` to avoid mistakes). Please note that you can either: - -* Use the exact Tuleap Enterprise Edition tag like ``11.13-4`` -* Or just run the head tag of the release like ``11.13`` - -.. code-block:: bash - - $ docker run -ti \ - -e TULEAP_FQDN=tuleap.example.com \ - -e DB_HOST=db-tuleap.example.com \ - -e DB_ADMIN_USER="root" \ - -e DB_ADMIN_PASSWORD="a fine password" \ - -v /srv/path/to/data:/data - docker.tuleap.org/tuleap-enterprise-edition:11.13-3 - -The next runs won't need the environment variable so you can restart with: - -.. code-block:: bash - - $ docker run -d \ - -v /srv/path/to/data:/data - docker.tuleap.org/tuleap-enterprise-edition:11.13-3 diff --git a/languages/en/installation-guide/docker/intro_docker.rst b/languages/en/installation-guide/docker/intro_docker.rst index 69dd6e98..e6872237 100644 --- a/languages/en/installation-guide/docker/intro_docker.rst +++ b/languages/en/installation-guide/docker/intro_docker.rst @@ -16,7 +16,7 @@ It allows you to not be bothered by different OS migrations and the like. Prerequisites ````````````` -You need `docker `_ on your host. You might want docker-compose as well. +You need `docker compose `_ on your host. The following sections assume that you are going to run the Tuleap container as the only "visible" container on the server. That means that Tuleap web container will publish it's ports (``80``, ``443`` and ``22``) on hosts ports. @@ -34,3 +34,5 @@ Please do note that shared databases must not be used: - they cannot guarantee the needed Quality of service - they cannot respect the requirements (SQL modes) - they make consistent backups almost impossible + +In most cases, you'll also want a Reverse-Proxy to get access to your platform and handle the TLS termination. diff --git a/languages/en/installation-guide/docker/introduction.rst b/languages/en/installation-guide/docker/introduction.rst index 9bb3e493..a2d017ed 100644 --- a/languages/en/installation-guide/docker/introduction.rst +++ b/languages/en/installation-guide/docker/introduction.rst @@ -15,5 +15,4 @@ Table of contents: intro_docker images-configuration verify_images_authenticity - docker_standalone docker_compose