Passer au contenu principal

(Optionnel) Essayer avec Docker

Exigences

Matériel

Si vous souhaitez construire l'image Docker vous-même, assurez-vous que votre machine dispose d'au moins 2 Go de mémoire. Le frontend de Casibase est un projet NPM basé sur React. La construction du frontend nécessite au moins 2 Go de mémoire. Une mémoire inférieure à 2 Go peut entraîner l'échec de la construction du frontend.

Si vous avez seulement besoin d'exécuter l'image préconstruite, assurez-vous que votre machine dispose d'au moins 100 Mo de mémoire.

Système d'exploitation

Tous les systèmes d'exploitation (Linux, Windows et macOS) sont pris en charge.

Docker

Vous pouvez utiliser Docker (version docker-engine >= 17.05) sous Linux ou Docker Desktop sous Windows et macOS.

Quel que soit le système d'exploitation, les utilisateurs doivent s'assurer qu'ils disposent de la version docker-engine >= 17.05. C'est parce que nous utilisons la fonctionnalité de construction multi-étapes dans docker-compose.yml, qui est prise en charge dans la version 17.05 et supérieure. Pour plus d'informations, voir https://docs.docker.com/develop/develop-images/multistage-build/.

Si vous utilisez docker-compose, assurez-vous d'avoir docker-compose version >= 2.2. Pour les utilisateurs Linux, notez que docker-compose doit être installé séparément de docker-engine.

Obtenir les images

Nous fournissons deux images sur DockerHub :

NomDescriptionRecommandation
casibase-all-in-oneL'image contient Casibase et la base de données MySQLCette image contient déjà une base de données de test et est uniquement destinée aux tests
casibaseL'image contient uniquement CasibaseCette image peut se connecter à votre propre base de données et être utilisée en production
  1. casbin/casibase-all-in-one: cette image contient l'exécutable casibase, une base de données MySQL et toutes les configurations nécessaires. Elle est conçue pour les nouveaux utilisateurs qui souhaitent essayer rapidement Casibase. Avec cette image, vous pouvez démarrer Casibase immédiatement avec seulement une ou deux commandes sans configuration complexe. Cependant, notez que nous ne recommandons pas d'utiliser cette image en production.

Option-1 : Utiliser la base de données de test

Exécutez le conteneur en exposant le port 14000 à l'hôte. Si l'image n'existe pas sur l'hôte local, elle sera automatiquement téléchargée.

docker run -p 14000:14000 casbin/casibase-all-in-one

Visitez http://localhost:14000 dans votre navigateur. Connectez-vous au tableau de bord Casibase avec le compte administrateur global par défaut : built-in/admin

admin
<b>123</b>

Option-2 : Essayer avec docker-compose

Créez un répertoire conf/app.conf au même niveau de répertoire que le fichier docker-compose.yml. Ensuite, copiez app.conf depuis Casibase. Pour plus de détails sur app.conf, vous pouvez consulter Via le fichier Ini.

Below is a minimal but complete docker-compose.yml example that starts a MySQL database and the Casibase service. It configures Casibase to connect to the database using MySQL. Save this file as docker-compose.yml (next to a conf folder if you want to mount a custom app.conf).

services:
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: casibase
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306" # optional: expose DB to host

casibase:
image: casbin/casibase:latest
restart: unless-stopped
depends_on:
- db
environment:
# Use MySQL driver and point to the db service (service name = host)
- driverName=mysql
- dataSourceName=root:123456@tcp(db:3306)/
ports:
- "14000:14000"
volumes:
# optional: mount your configuration
- ./conf/app.conf:/conf/app.conf

volumes:
db_data:

What does the above compose file do:

  • The Casibase container connects to the database using the Compose service name db (i.e. db:3306). When both services run in the same Docker network (default for compose), using the service name as host is the simplest and most reliable approach.
  • The dataSourceName above uses the MySQL root account for simplicity. For production use please create a dedicated DB user and a strong password.
  • Mounting ./conf/app.conf into /conf/app.conf is optional. If you prefer environment variables, you can remove the mount and rely on the driverName and dataSourceName variables.
  • If both app.conf and environment variables are provided, the environment variables take precedence and will override the corresponding settings in app.conf.
remarque

Casdoor: By default Casibase uses the hosted Casdoor instance at https://door.casdoor.com for user authentication. If you need to manage users, applications, or customize the authentication flow, you must deploy your own Casdoor instance and update Casibase's app.conf (or the equivalent environment variables) to point to your Casdoor server. You can look at Casdoor configuration for more details.

RUNNING_IN_DOCKER: By default RUNNING_IN_DOCKER is enabled in docker image. When enabled, Casibase replaces localhost with the Docker bridge address (for example, host.docker.internal or the equivalent bridge hostname) so that the container can reach services running on the host.

Bring up the services:

docker-compose up -d

Check logs (follow):

docker-compose logs -f casibase

Visitez http://localhost:14000 dans votre navigateur. Connectez-vous au tableau de bord Casibase avec le compte administrateur global par défaut : built-in/admin

admin
<b>123</b>

Stop and remove containers and volumes (data removed):

docker-compose down -v

Option-3 : Utiliser directement l'image standard

conseil

S'il n'est pas pratique de monter des fichiers de configuration dans le conteneur, l'utilisation de variables d'environnement peut également être une solution.

example

docker run \
-e driverName=mysql \
-e dataSourceName='user:password@tcp(x.x.x.x:3306)/' \
-p 14000:14000 \
casbin/casibase:latest

Créez conf/app.conf. Vous pouvez le copier depuis conf/app.conf de Casibase. Pour plus de détails sur app.conf, vous pouvez consulter Via le fichier Ini.

Ensuite, exécutez

docker run  -p 14000:14000 -v /folder/of/app.conf:/conf casbin/casibase:latest

En résumé, vous devez simplement monter app.conf dans /conf/app.conf et démarrer le conteneur.

Visitez http://localhost:14000 dans votre navigateur. Connectez-vous au tableau de bord Casibase avec le compte administrateur global par défaut : built-in/admin

admin
<b>123</b>