diff --git a/Deploy-by-Docker.md b/Deploy-by-Docker.md new file mode 100644 index 0000000..4765bfc --- /dev/null +++ b/Deploy-by-Docker.md @@ -0,0 +1,58 @@ + +Make sure you have **already installed docker**, [Install reference](https://docs.docker.com/engine/install/) + +> **Notice:** Your need an absolute path, and it will be served by tinyfilemanager. +> +> If you want to serve this project at **raspberry pi or another special platform**, you can download project and **build image by yourself**. + +You can execute this following commands: + +```shell +$ docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +648dfba9c0ff tinyfilemanager/tinyfilemanager:master "docker-php-entrypoi…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp tinyfilemanager +``` +Access `http://127.0.0.1/` and enter default username and password, then enjoy it. + +DockerHub: [https://hub.docker.com/r/tinyfilemanager/tinyfilemanager](https://hub.docker.com/r/tinyfilemanager/tinyfilemanager) + +#### How to change config within docker + +Origin: + +```php +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT']; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = ''; +``` + +Modified: + +```php +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT'].'/data'; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = 'data/'; +``` + +Then, change another config what you want, and add a new volume `-v /absolute/path/index.php:/var/www/html/index.php` in `docker run` command, like this: + +```shell +$ docker run -d -v /absolute/path:/var/www/html/data -v /absolute/path/index.php:/var/www/html/index.php -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master +``` + +#### Stop running + +If you want to stop a running docker service, or you want to restart a service, you should stop it first, or you got `docker: Error response from daemon: Conflict. The container name "/tinyfilemanager" is already in use by container ...` problem. You can execute this command: + +```shell +$ docker rm -f tinyfilemanager +``` \ No newline at end of file