I want to run the neo4j container with initialized data on Amazon ECS. So I extend the
neo4j docker image, setup and run the data import and then run the original entry point. The problem is that the
neo4j user keeps its default password (
neo4j) and its setting using
NEO4J_AUTH env var does not work.
My Dockerfile looks like this:
FROM neo4j ENV NEO4J_AUTH=neo4j/graphPass ENV JAVA_OPTS='-server -Xms2g -Xmx2g' RUN curl -sL https://deb.nodesource.com/setup_13.x | bash - RUN curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt -y update && \ apt -y upgrade && \ apt-get install -y nodejs yarn tar WORKDIR /code COPY ./ /code RUN chown -R neo4j:neo4j /code RUN yarn install RUN ./node_modules/.bin/webpack --config ./webpack.config.js
And the container is run with command from this bash script: (The node.js script basically downloads the data and imports them by calling
#!/bin/bash node ./dist/init-data.js /sbin/tini -gs -- /docker-entrypoint.sh neo4j
I can't run change the password by running
cypher-shell -u neo4j -p neo4j "CALL dbms.security.changePassword('graphPass');" in the script because the neo4j server isn't started yet so I'm quite clueless.