{"id":19737992,"url":"https://github.com/devsu/docker-tao","last_synced_at":"2026-03-02T21:06:04.652Z","repository":{"id":48564289,"uuid":"289352180","full_name":"devsu/docker-tao","owner":"devsu","description":"Docker images for building and running TAO Assessment Platform","archived":false,"fork":false,"pushed_at":"2021-07-20T08:22:31.000Z","size":36,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-10T19:27:41.493Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devsu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-21T19:46:29.000Z","updated_at":"2023-03-23T01:17:16.000Z","dependencies_parsed_at":"2022-09-04T10:53:02.648Z","dependency_job_id":null,"html_url":"https://github.com/devsu/docker-tao","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsu%2Fdocker-tao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsu%2Fdocker-tao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsu%2Fdocker-tao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devsu%2Fdocker-tao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devsu","download_url":"https://codeload.github.com/devsu/docker-tao/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241067593,"owners_count":19903844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T01:13:00.772Z","updated_at":"2026-03-02T21:06:04.617Z","avatar_url":"https://github.com/devsu.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-tao\nDocker images for building and running [TAO Assessment Platform](https://www.taotesting.com/)\n\n## Usage\n\nThe image is published in docker hub at devsu/tao. The easiest way to run tao is using docker-compose. \n\n1. Clone this repo (or just copy the files in the `example` folder).\n2. Modify the `tao/docker-compose.yml` and `tao/nginx` according to your needs.\n3. Then just run `docker-compose up` from the `example` folder.\n\nThen just head to http://localhost to start installation.\n\nAt installation make sure that you choose the following folder to store data: `/var/lib/tao/data`. As you can see in `Dockerfile`, a volume has been defined for this folder. \n\nSince this folder is created only in the `tao` image, it won't be accessible by the `web` container, which is good for security reasons.\n\nIf you don't want to use docker-compose, you can also install and run TAO using the following command:\n\n```\ndocker run --env DB_HOST=https://example.org --env DB_NAME=myDB --env DB_USER=myDBUser --env DB_PASSWORD=myDBPass --env USER=myTaoAdminUser --env PASSWORD=myTenLengthAlfanumericTaoAdminPassword devsu/tao\n```\n\nIt's necessary to define the next environment variables:\n\n- `DB_HOST`: Database location. You can use a hostname like localhost or an IP address like 127.0.0.1.\n- `DB_NAME`: Name of the database used to store data from TAO platform.\n- `DB_USER`: Login to access to database.\n- `DB_PASSWORD`: Password to access to database.\n- `USER`: The login of the administrator to be created.\n- `PASSWORD`: The password of the administrator. This password must alphanumeric with 10 characters length.\n\nOther enviroment variables that you can define are:\n\n- `FILE_PATH`: Path to where asset files should be stored. The default is /var/lib/tao/data.\n- `DB_DRIVER`: Driver engine to connect TAO platform with a database. The default is pdo_mysql. You must add other engines as pdo_pgsql, pdo_sqlsrv or pdo_oci in the docker file in order to use it.\n- `DB_PORT`: Network port used to connect database host. The default is 3306.\n- `URL`: The URL to access to platform from web browser. The default is http://localhost but you use it other with https protocol once you defined in DNS configuration.\n\nThe image is using docker-compose-wait (https://github.com/ufoscout/docker-compose-wait/) in order to wait until have a successfull database connection and proceed to install the platform. The environment variables that we can define for this tool are:\n\n- `WAIT_HOSTS_TIMEOUT`: Max number of seconds to wait for all the hosts/paths to be available before failure. The default is 30 seconds.\n- `WAIT_SLEEP_INTERVAL`: Max number of seconds to sleep between retries. The default is 1 second.\n- `WAIT_HOST_CONNECT_TIMEOUT`: The timeout of a single TCP connection to a remote host before attempting a new connection. The default is 5 seconds.\n\n`WAIT_HOSTS` is the main variable used for docker-compose-wait to know which hosts needs to wait, but our image build this variable automatically from DB_HOST and DB_PORT variables.\n\n## Approach\n\nThe `tao` image is built using [multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/).\n\n- The **builder** image downloads the code and install all required packages\n- The **runner** image copies the code generated by the builder and installs the runtime dependencies.\n\nThe runner is a `php-fpm` image, and thus it requires a **nginx** instance in front of it to serve the application.\n\nThe `example/docker-compose.yml` shows how to use it. It defines 2 services:\n\n- **tao**: The container that will run the application.\n- **web**: An nginx web server.\n\nBoth images share a named volume, which contain the application code.\n\nAll images are built in top of Linux alpine, to avoid issues of different ids for the `www-data` user. \n\n## Building TAO\n\nAs you can see in the Dockerfile, TAO is built from the source code releases at https://github.com/oat-sa/package-tao/releases.\n\nIt's published in docker-hub at https://hub.docker.com/repository/docker/devsu/tao, but if you want, you can build it yourself. \n\n```\ndocker build --target builder -t tao\n```\n\nTAO platform is configured to use the latest tao version at moment, but you can easily change the version by passing the `TAO_VERSION` argument.\n\n```\ndocker build --target builder -t tao --build-arg TAO_VERSION=3.3-rc02\n```\n\nThe version must match the version used in the name of the source code zip file.\n\n## Development\n\nIf you want to test the docker files as you change them, you need to use the `docker-compose-dev.yml` file instead. \n\n```\ndocker-compose -f docker-compose-file-dev.yml up --build \n```\n\n## Credits\n\nThanks to [Open Assessment Technologies](https://www.taotesting.com/about-us/) for the awesome work, and for sharing it with the world.\n\nInspired on https://github.com/Alroniks/docker-tao.\n\nThis repo is maintained by Devsu, and it's used to take assessments to [find the best software developers](https://devsu.com/about-us/).\n\n## License\n\nMIT License - Copyright (c) 2020 Devsu LLC.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsu%2Fdocker-tao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevsu%2Fdocker-tao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsu%2Fdocker-tao/lists"}