Loading...
 
Skip to main content

History: Docker

Source of version: 75 (current)

Copy to clipboard
! Docker for Tiki Development

! Why Docker
Docker allows you to run the exact same environment on different machines, thus preventing bugs related to using different operating systems (e.g., Windows, macOS, GNU/Linux), different packages versions (e.g., Apache HTTP Server, PHP, MariaDB, ...), and therefore different environments (e.g., development, staging, production). Less time dealing with environment issues = more time developing awesome features!

This guide assumes that you are comfortable with developer tools like -+bash/sh+-, -+docker+-, -+dotenv+- and -+git+-. If you are not, and you are only looking for testing Tiki, you can access our online Tiki demos here: https://tiki.org/Demo If you are a developer but are not comfortable with those tools, you can have a look at the [#Resources|Resources] part first.

!! DockerHub images

Developement is resuming on those "official" images:  https://hub.docker.com/r/tikiwiki/tikiwiki

Report issues with the dockerhub images at https://gitlab.com/tikiwiki/docker-tikiwiki

!! laradock development environment:  using docker for your development environment

Report issues with the laradock image at: https://gitlab.com/tikiwiki/tiki-laradock
Thanks!

!!!!!! 1. "Do the git thing"
Fork Tiki ( https://gitlab.com/tikiwiki/tiki ) and clone your fork. Tiki is a big repository, so you can decide to clone only the latest history (~np~--depth=1~/np~) or only the specific branch you need (~np~--single-branch~/np~).

!!!!!! 2. Check out the relevant branch
Go into the repository you've just cloned and check out the Tiki version you want to work with:

e.g.: {CODE()}git checkout 20.x{CODE}

!!!!!! 3. Clone tiki-docker
In that same directory, clone tiki-docker:

{CODE()}git clone git@gitlab.com:tikiwiki/tiki-laradock.git laradock{CODE}

P.S.: you don't have to call that directory -+laradock+-, but default sensible settings are using this name. If you want to use your own name, you'll have to edit a few files (-+ .env+-, and -+docker-compose+- files).

!!!!!! 4. Check out the environment you need
tiki-docker comes with environments for the different versions of Tiki. It will then use the correct PHP, mariadb, elasticsearch, etc... versions.

In your Tiki source, enter the tiki-docker source:

{CODE()}cd laradock{CODE}

then check out your environment:

{CODE()}git checkout tiki-20.x{CODE}

!!!!!! 5. Custom your variables if necessary
tiki-docker works out of the box, but you can set up your own variables, stored in the included -+ .env+- file. You may want to edit for example the apache2/nginx http host port, mysql/mariadb database name and credentials, although it is not necessary.

You are encouraged to change the -+DATA_PATH_HOST+- variable to a unique project name. This is the place where your data will be stored (mysql/mariadb, elasticsearch, etc...) so that even if your containers are removed, your development data is not.  If you use the same -+DATA_PATH_HOST+- for different projects, the projects will overwrite each other's data.

!!!!!! 6. Start the environment with the services you need
In your tiki-docker source, you can now start your environment with the services of your choices:

{CODE()}docker-compose up -d apache2 mariadb elasticsearch maildev phpmyadmin adminer workspace{CODE} etc....

!!!!!! 7. Enjoy
You can now access Tiki at http://localhost:PORTNUMBER. The PORTNUMBER will depend of the http host port variable configured in the -+ .env+- file.

To access your workspace and run composer commands, tiki commands, etc..., in your tiki-docker source, run:

{CODE()}docker-compose exec workspace bash{CODE}

When you finished developing, you can stop your containers. In your tiki-docker source, run:

{CODE()}docker-compose stop{CODE}

!!! Tips

!!!! Create aliases
Rather than typing every time -+docker-compose up -d apache2 mariadb...+-, you might want to create aliases, like for example -+devup+-. Same for stopping your containers: -+devdown+-, or going into your workspace: -+devbash+-.

! Resources
* Docker documentation and installation: https://docs.docker.com/
* Git: https://git-scm.com/
* Laradock: https://laradock.io/
* dotenv files: [https://www.google.com/search?rlz=1C5CHFA_enMO855MO855&ei=knU-XbHLE8iB-Qai3be4DA&q=dotenv&oq=dotenv&gs_l=psy-ab.3..35i39l2j0i67j0i20i263j0i67l4j0j0i67.1505.1505..1854...0.0..0.56.56.1......0....1..gws-wiz.......0i71.zg4hzpDygTk&ved=0ahUKEwix3P_rpNnjAhXIQN4KHaLuDccQ4dUDCAo&uact=5|dotenv google search]
* Xdebug: https://xdebug.org/

----

Related: Kubernetes and AppImage

!! Unofficial or deprecated sources
* https://github.com/TikiWiki/docker-tikiwiki/tree/19.x
* https://gitlab.com/tikiwiki/tiki-docker
* https://hub.docker.com/r/tikiwiki/tikiwiki
* https://hub.docker.com/r/tikiwiki/php

!!! Guillaume
https://sleeplessmind.com.mo/news/docker-tiki/
https://github.com/godbout/docker-tiki
https://gitlab.com/guill/docker-tiki

!!! Fabio
https://github.com/fabiomontefuscolo/docker-tikiwiki
* https://gist.github.com/fabiomontefuscolo/6413587debccc9058d7850b96c5f91e5

!!! Jyhem
Everything I know on the topic of getting a working Tiki12 on docker is reported here: [https://tiki.org/Tiki-deployement---Experiment-with-appsdeck]

!!! Nelson
See this commit for all the info: https://gitlab.com/synergiq/tiki/commit/050df06191d4652d49faf5f85420890740992862
The link to the branch (from master) is https://gitlab.com/synergiq/tiki/tree/docker

!! Related links
* https://roundcubeinbox.wordpress.com/2020/01/04/update-docker-images-when-base-image-changes/
Show PHP error messages