docker-poc-notebook
โ Deprecated
This pilot project has been abandoned. There is no successor.
Overview
The senzing/poc-notebook
docker image is a Senzing-ready, jupyter notebook for showing POC results.
These notebooks are built upon the DockerHub Jupyter organization docker images. The default base image is jupyter/minimal-notebook. There is more information on the Jupyter Docker Stacks.
Contents
Legend
- ๐ค - A "thinker" icon means that a little extra thinking may be required. Perhaps you'll need to make some choices. Perhaps it's an optional step.
- โ๏ธ - A "pencil" icon means that the instructions may need modification before performing.
โ ๏ธ - A "warning" icon means that something tricky is happening, so pay attention.
Expectations
Space
This repository and demonstration require 9 GB free disk space.
Time
Budget 40 minutes to get the demonstration up-and-running, depending on CPU and network speeds.
Background knowledge
This repository assumes a working knowledge of:
Demonstrate using Docker
Initialize Senzing
- If Senzing has not been initialized, visit "How to initialize Senzing with Docker".
Configuration
Configuration values specified by environment variable or command line parameter.
Non-Senzing configuration can be seen at Jupyter Docker Stacks
- JUPYTER_NOTEBOOKS_SHARED_DIR
- SENZING_DATA_VERSION_DIR
- SENZING_ETC_DIR
- SENZING_G2_DIR
- SENZING_NETWORK
- SENZING_RUNAS_USER
- SENZING_VAR_DIR
Volumes
-
โ๏ธ Specify the directory containing the Senzing installation. Use the same
SENZING_VOLUME
value used when performing "How to initialize Senzing with Docker". Example:export SENZING_VOLUME=/opt/my-senzing
-
Here's a simple test to see if
SENZING_VOLUME
is correct. The following commands should return file contents. Example:cat ${SENZING_VOLUME}/g2/g2BuildVersion.json cat ${SENZING_VOLUME}/data/3.0.0/libpostal/data_version
-
โ ๏ธ macOS - File sharing must be enabled forSENZING_VOLUME
. -
โ ๏ธ Windows - File sharing must be enabled forSENZING_VOLUME
.
-
-
Identify the
data_version
,etc
,g2
, andvar
directories. Example:export SENZING_DATA_VERSION_DIR=${SENZING_VOLUME}/data/3.0.0 export SENZING_ETC_DIR=${SENZING_VOLUME}/etc export SENZING_G2_DIR=${SENZING_VOLUME}/g2 export SENZING_VAR_DIR=${SENZING_VOLUME}/var
Docker network
๐ค Optional: Use if docker container is part of a docker network.
-
List docker networks. Example:
sudo docker network ls
-
โ๏ธ Specify docker network. Choose value from NAME column of
docker network ls
. Example:export SENZING_NETWORK=*nameofthe_network*
-
Construct parameter for
docker run
. Example:export SENZING_NETWORK_PARAMETER="--net ${SENZING_NETWORK}"
Database support
๐ค Optional: Some database need additional support. For other databases, these steps may be skipped.
- Db2: See
Support Db2
instructions to set
SENZING_OPT_IBM_DIR_PARAMETER
. - MS SQL: See
Support MS SQL
instructions to set
SENZING_OPT_MICROSOFT_DIR_PARAMETER
.
Run docker container
-
โ๏ธ Set environment variables. Example:
export JUPYTER_NOTEBOOKS_SHARED_DIR=$(pwd) export WEBAPP_PORT=8888
-
๐ค Optional: Run Jupyter without token authentication. Example:
export JUPYTER_PARAMETERS="start.sh jupyter notebook --NotebookApp.token=''"
-
Run docker container. Example:
sudo docker run \ --interactive \ --name senzing-jupyter \ --publish ${WEBAPP_PORT}:8888 \ --rm \ --tty \ --volume ${JUPYTER_NOTEBOOKS_SHARED_DIR}:/notebooks/shared \ --volume ${SENZING_DATA_VERSION_DIR}:/opt/senzing/data \ --volume ${SENZING_ETC_DIR}:/etc/opt/senzing \ --volume ${SENZING_G2_DIR}:/opt/senzing/g2 \ --volume ${SENZING_VAR_DIR}:/var/opt/senzing \ ${SENZING_NETWORK_PARAMETER} \ ${SENZING_OPT_IBM_DIR_PARAMETER} \ ${SENZING_OPT_MICROSOFT_DIR_PARAMETER} \ senzing/poc-notebook ${JUPYTER_PARAMETERS}
Run Jupyter
-
If no token authentication, access your jupyter notebooks at: http://127.0.0.1:8888/
-
If token authentication, locate the URL in the Docker log. Example:
Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://(a152e5586fdc or 127.0.0.1):8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Adjust the URL. Example:
http://127.0.0.1:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Paste the URL into a web browser.
Develop
Prerequisite software
The following software programs need to be installed:
Clone repository
For more information on environment variables, see Environment Variables.
-
Set these environment variable values:
export GIT_ACCOUNT=senzing export GIT_REPOSITORY=docker-poc-notebook export GIT_ACCOUNT_DIR=~/${GIT_ACCOUNT}.git export GIT_REPOSITORY_DIR="${GIT_ACCOUNT_DIR}/${GIT_REPOSITORY}"
-
Follow steps in clone-repository to install the Git repository.
Build docker image for development
-
Option #1: Using
docker
command and GitHub.sudo docker build --tag senzing/poc-notebook https://github.com/senzing/docker-poc-notebook.git#main
-
Option #2: Using
docker
command and local repository.cd ${GIT_REPOSITORY_DIR} sudo docker build --tag senzing/poc-notebook .
-
Option #3: Using
make
command.cd ${GIT_REPOSITORY_DIR} sudo make docker-build
Note:
sudo make docker-build-development-cache
can be used to create cached docker layers.
Examples
Errors
- See docs/errors.md.