For developing, we will not usually need to rebuild the the db docker image once it’s created. Probably have to rebuild every time for Jenkins etc. just to catch any script updates we may make.
We can edit CSV files (checked into source) and run docker-db-refresh without having to touch the stack
# build db image
npm run docker-db-build
# start stack
npm run docker-dev-start
{wait a minute – should probably implement @thechrisrobinson's db_wait.sh}
# change neo4j admin password
npm run docker-dev-init
# import data
npm run docker-db-refresh
# start app
npm start
Extract of ./db from source:
./db/
conf-mapped/ => mapped to /var/lib/neo4j/conf
neo4j.conf [we can make/save conf changes in source code but this is vanilla right now]
import-mapped/ => mapped to /var/lib/neo4j/import
*.csv [data!]
scripts/
image/ => copied (not mapped) to /var/lib/neo4j/scripts when docker image created
init.sh [unused – for reference]
refresh.sh [runs cypher-shell to run LoadCSV.cql import script]
LoadCSV.cql [neo4j cql script to import images]
local/ => scripts run from host (called from npm run …)
get-container-name.sh [hacky one-liner to get the container ID – for use by docker-db-refresh]
set-neo4j-password.sh [curl/REST to set admin password after fresh image launched – for use by docker-dev-init]
./docker/Dockerfile-web => web image
./docker/Dockerfil-db => db image
Skeleton outline:
Note:
{wait a minute – should probably implement @thechrisrobinson's db_wait.sh}
Extract of ./db from source:
./db/ conf-mapped/ => mapped to /var/lib/neo4j/conf neo4j.conf [we can make/save conf changes in source code but this is vanilla right now] import-mapped/ => mapped to /var/lib/neo4j/import *.csv [data!] scripts/ image/ => copied (not mapped) to /var/lib/neo4j/scripts when docker image created init.sh [unused – for reference] refresh.sh [runs cypher-shell to run LoadCSV.cql import script] LoadCSV.cql [neo4j cql script to import images] local/ => scripts run from host (called from npm run …) get-container-name.sh [hacky one-liner to get the container ID – for use by docker-db-refresh] set-neo4j-password.sh [curl/REST to set admin password after fresh image launched – for use by docker-dev-init]
./docker/Dockerfile-web => web image ./docker/Dockerfil-db => db image