# Rainloop in docker ## docker-compose.yml example This will automatically populate the data under the /srv/data/rainloop/html and /srv/data/rainloop/nginx directories. Make sure to create these directories first. ``` version: '3.3' services: rainloop-fpm: image: yourrepo/rainloop:1.14.0 restart: always networks: - backend volumes: - rainloop_html:/opt/rainloop - rainloop_nginx:/etc/nginx/conf.d rainloop-nginx: image: nginx:mainline-alpine restart: always networks: - backend volumes: - rainloop_html:/opt/rainloop - rainloop_nginx:/etc/nginx/conf.d depends_on: - rainloop-fpm # add whatever lables/directives you need to expose your nginx container volumes: rainloop_html: driver: local driver_opts: type: none device: /srv/data/rainloop/html o: bind rainloop_nginx: driver: local driver_opts: type: none device: /srv/data/rainloop/nginx o: bind ``` ## updating the Rainloop 1. Backup the data ``` cp -pr /srv/data/rainloop /srv/data/rainloop-1.13.0-bkp ``` 2. Update and reset the containers ``` docker-compose stop rainloop-fpm rainloop-nginx docker-compose rm -f rainloop-fpm rainloop-nginx docker volume rm srv_rainloop_html srv_rainloop_nginx rm -rf -- /srv/data/rainloop/nginx/* /srv/data/rainloop/html/* docker pull yourrepo/rainloop:1.14.0 docker-compose up -d ``` 3. Restore the backup ``` cd /srv/data rsync -avHx --progress rainloop-1.13.0-bkp/html/data/_data_ rainloop/html/data/ chown -Rh --reference rainloop/html/data rainloop/html/data/_data_ ```