Hi David,
Thank you for your response.
..just have a look at the repo where our dockerfiles are built from and you can see that you can build your own docker container on top of this, you just need to ensure that
docker-entrypoint.sh
gets called, which actually starts the Neo4j process.
I did in fact do just that.
But on the other hand - it is a really good idea to isolate one process per docker container. If you're trying to run a python server and neo4j inside of the same docker container -- this is doable but not something I would advise.
I agree. I am working around some cost and knowledge-capital constraints at the moment, but may ultimately move towards the recommended 1-container, 1-component approach.
Independent of my stated use case, Docker multi-stage builds are one recommended way to extract the smallest image to deploy to a production environment. The neo4j image is ~362 MB. Is it possible to take out only the neo4j binary executables and jvm? I had something like the following at the top of my Dockerfile
# JAVA: Neo4j
FROM neo4j:3.5 AS builder
# PYTHON: Franklin Web App
FROM python:3.6 AS appenv
# Get java resources for neo4j
COPY --from=builder /usr/local/openjdk-8 /usr/local/openjdk-8
COPY --from=builder /var/lib/neo4j /var/lib/neo4j
ENV JAVA_HOME=/usr/local/openjdk-8 \
NEO4J_HOME="/var/lib/neo4j" \
NEO4J_EDITION=community
And this does work, but size of the resulting image is the sum of the two images (python, neo4j). Is it possible to deploy a smaller image to production?