Hi,
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 neo4j-admin import
.)
#!/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.