This image allows you to deploy WebProtégé as a microservice.
WebProtégé is a free, open-source ontology editor and framework for building intelligent systems.
To start a new instance:
docker run --name webprotege -d \
-v webprotege_data:/srv/webprotege \
-v webprotege_logs:/var/log/webprotege \
--link mongodb -p 8888:8080 \
skyplabs/webprotege
The web application will be accessible from the host system on port 8888
. All the persistent data will be stored in two volumes managed by Docker and called respectively webprotege_data
and webprotege_logs
. mongodb
must be the name of a MongoDB docker container listening on port 27017
.
To start a MongoDB instance using Docker (must be started before WebProtégé):
docker run --name mongodb -d -v mongodb_data:/data/db mongo:3
All the persistent data will be stored in a volume managed by Docker and called mongodb_data
.
To start the two containers using only one command, you can use Docker Compose:
docker-compose up -d
To bootstrap your new container with an admin account, you need to use the WebProtégé Command Line Tool. This Docker image embeds natively this tool.
Once your new container up and running:
docker exec -it <container name> webprotege-cli create-admin-account
After having signed in your new WebProtégé instance, you need to specify the host name and a couple of other parameters on the settings page.
You can customise the configuration of WebProtégé by injecting the webprotege.properties
and/or mail.properties
files into the container using the volume command. The files must be placed in /etc/webprotege
.
For example:
export WP_CONFIG_DIR=/etc/webprotege
docker run --name webprotege -d \
-v webprotege_data:/data/webprotege \
-v webprotege_logs:/var/log/webprotege \
-v $(pwd)/config/webprotege.properties:${WP_CONFIG_DIR}/webprotege.properties:ro \
-v $(pwd)/config/mail.properties:${WP_CONFIG_DIR}/mail.properties:ro \
--link mongodb -p 8888:8080 \
skyplabs/webprotege
Note that application.version
and data.directory
are defined in Dockerfile
as environment variables and will overwrite the values contained in webprotege.properties
. However, you can change them at build-time via the arguments WEBPROTEGE_VERSION
and WEBPROTEGE_DATA_DIR
.
For example:
docker build -t webprotege --build-arg WEBPROTEGE_DATA_DIR=/data/webprotege .