]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - doc/md/docker/shaarli-images.md
Docker: expose a volume for the thumbnail cache
[github/shaarli/Shaarli.git] / doc / md / docker / shaarli-images.md
CommitLineData
32488257 1A brief guide on getting starting using docker is given in [Docker 101](docker-101.md).
2To learn more about user data and how to keep it across versions, please see [Upgrade and Migration](../Upgrade-and-migration.md).
3
53ed6d7d 4## Get and run a Shaarli image
5
6### DockerHub repository
7The images can be found in the [`shaarli/shaarli`](https://hub.docker.com/r/shaarli/shaarli/)
8repository.
9
10### Available image tags
c064d317
V
11- `latest`: latest branch
12- `master`: master branch
13- `stable`: stable branch
53ed6d7d 14
fab0f4e5
V
15The `latest` and `master` images rely on:
16
17- [Alpine Linux](https://www.alpinelinux.org/)
18- [PHP7-FPM](http://php-fpm.org/)
19- [Nginx](http://nginx.org/)
20
21The `stable` image relies on:
22
53ed6d7d 23- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
24- [PHP5-FPM](http://php-fpm.org/)
25- [Nginx](http://nginx.org/)
26
c064d317
V
27Additional Dockerfiles are provided for the `arm32v7` platform, relying on
28[Linuxserver.io Alpine armhf
29images](https://hub.docker.com/r/lsiobase/alpine.armhf/). These images must be
30built using [`docker
31build`](https://docs.docker.com/engine/reference/commandline/build/) on an
32`arm32v7` machine or using an emulator such as
33[qemu](https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/).
fab0f4e5 34
186d9eaa
V
35### Download from Docker Hub
36```shell
53ed6d7d 37$ docker pull shaarli/shaarli
186d9eaa 38
53ed6d7d 39latest: Pulling from shaarli/shaarli
4032716d9fcddb: Pull complete
4184899d045435: Pull complete
424b6ad7444763: Pull complete
43e0345ef7a3e0: Pull complete
445c1dd344094f: Pull complete
456422305a200b: Pull complete
467d63f861dbef: Pull complete
473eb97210645c: Pull complete
48869319d746ff: Already exists
49869319d746ff: Pulling fs layer
50902b87aaaec9: Already exists
51Digest: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98
52Status: Downloaded newer image for shaarli/shaarli:latest
53```
54
55### Create and start a new container from the image
186d9eaa 56```shell
53ed6d7d 57# map the host's :8000 port to the container's :80 port
58$ docker create -p 8000:80 shaarli/shaarli
59d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
60
61# launch the container in the background
62$ docker start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
63d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
64
65# list active containers
66$ docker ps
67CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68d40b7af693d6 shaarli/shaarli /usr/bin/supervisor 15 seconds ago Up 4 seconds 0.0.0.0:8000->80/tcp backstabbing_galileo
69```
70
71### Stop and destroy a container
186d9eaa 72```shell
53ed6d7d 73$ docker stop backstabbing_galileo # those docker guys are really rude to physicists!
74backstabbing_galileo
75
76# check the container is stopped
77$ docker ps
78CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79
80# list ALL containers
81$ docker ps -a
82CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83d40b7af693d6 shaarli/shaarli /usr/bin/supervisor 5 minutes ago Exited (0) 48 seconds ago backstabbing_galileo
84
85# destroy the container
86$ docker rm backstabbing_galileo # let's put an end to these barbarian practices
87backstabbing_galileo
88
89$ docker ps -a
90CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91```
60ca6354 92
93### Automatic builds
186d9eaa
V
94Docker users can start a personal instance from an
95[autobuild image](https://hub.docker.com/r/shaarli/shaarli/).
96For example to start a temporary Shaarli at ``localhost:8000``, and keep session
97data (config, storage):
60ca6354 98
186d9eaa 99```shell
60ca6354 100MY_SHAARLI_VOLUME=$(cd /path/to/shaarli/data/ && pwd -P)
101docker run -ti --rm \
102 -p 8000:80 \
103 -v $MY_SHAARLI_VOLUME:/var/www/shaarli/data \
104 shaarli/shaarli
105```
186d9eaa
V
106
107### Volumes and data persistence
108Data can be persisted by [using volumes](https://docs.docker.com/storage/volumes/).
109Volumes allow to keep your data when renewing and/or updating container images:
110
111```shell
112# Create data volumes
113$ docker volume create shaarli-data
114$ docker volume create shaarli-cache
115
116# Create and start a Shaarli container using these volumes to persist data
117$ docker create \
118 --name shaarli \
119 -v shaarli-cache:/var/www/shaarli/cache \
120 -v shaarli-data:/var/www/shaarli/data \
121 -p 8000:80 \
122 shaarli/shaarli:master
123$ docker start shaarli
124```