Ceci est une ancienne révision du document !
L'image peut être construite à partir des sources disponible sur github à l'URL https://github.com/mozilla-services/syncserver
Cependant le plus simple reste d'utiliser directement l'image mise à disposition sur le hub docker à l'URL https://hub.docker.com/r/mozilla/syncserver
# générer une clé secrète $ head -c 20 /dev/urandom | sha1sum 594b47df21329................f192d9f4726 # définir la variable d'environnement avec la clé précédemment construite $ docker run --rm --name ffsync \ -p 5000:5000 \ -e SYNCSERVER_PUBLIC_URL=http://localhost:5000 \ -e SYNCSERVER_SECRET=594b47df21329................f192d9f4726 \ -e SYNCSERVER_SQLURI=sqlite:////tmp/syncserver.db \ -e SYNCSERVER_BATCH_UPLOAD_ENABLED=true \ -e SYNCSERVER_FORCE_WSGI_ENVIRON=false \ -e SYNCSERVER_DEBUG_ENABLED=true \ -e PORT=5000 \ mozilla/syncserver:latest
Si l'on souhaite maintenir masquée la clé secrète on peut utiliser un fichier plutôt que directement la variable d'environnement:
# Générer la clé dans un fichier $ head -c 20 /dev/urandom | sha1sum > ./secret-key.txt docker run --rm --name ffsync \ -p 5000:5000 \ -e SYNCSERVER_PUBLIC_URL=http://localhost:5000 \ -e SYNCSERVER_SECRET_FILE=/etc/ffsync/secret-key.txt \ -e SYNCSERVER_SQLURI=sqlite:////tmp/syncserver.db \ -e SYNCSERVER_BATCH_UPLOAD_ENABLED=true \ -e SYNCSERVER_FORCE_WSGI_ENVIRON=false \ -e PORT=5000 \ -v ./secret-key.txt:/etc/ffsync/secret-key.txt \ mozilla/syncserver:latest
Lancer un shell bash dans le conteneur puis lancer l’exécution des tests:
$ docker container exec -it ffsync /bin/bash /usr/local/bin/python -m syncstorage.tests.functional.test_storage \ --use-token-server http://localhost:5000/token/1.0/sync/1.5
version: '3.7' services: syncserver: container_name: syncserver image: mozilla/syncserver:latest volumes: - /syncserver:/data ports: - 5000:5000 environment: SYNCSERVER_PUBLIC_URL: 'http://localhost:5000' SYNCSERVER_SECRET: '<PUT YOUR SECRET KEY HERE>' SYNCSERVER_SQLURI: 'sqlite:////data/syncserver.db' SYNCSERVER_BATCH_UPLOAD_ENABLED: 'true' SYNCSERVER_FORCE_WSGI_ENVIRON: 'false' PORT: '5000' restart: always
Le serveur écoutant par défaut sur le port 5000 ne devrait pas être utilisé en production. Il ne sera pas en capacité de tenir une forte charge. Pour la mise en production il est recommandé d'utiliser un serveur web Apache ou Nginx avec leurs modules respectifs permettant le support du protocole WSGI.