diff --git a/docker-compose.maintenance.yml b/docker-compose.maintenance.yml index 6cfaf1f46..d98cbab2e 100644 --- a/docker-compose.maintenance.yml +++ b/docker-compose.maintenance.yml @@ -23,6 +23,13 @@ services: depends_on: - backend environment: + - GRAPHQL_PORT=4000 + - GRAPHQL_URI=http://localhost:4000 + - CLIENT_URI=http://localhost:3000 + - JWT_SECRET=b/&&7b78BF&fv/Vd + - MOCK=false + - MAPBOX_TOKEN=pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ + - PRIVATE_KEY_PASSPHRASE=a7dsf78sadg87ad87sfagsadg78 - NEO4J_URI=bolt://neo4j:7687 - "SSH_USERNAME=${SSH_USERNAME}" - "SSH_HOST=${SSH_HOST}" diff --git a/maintenance/Dockerfile b/maintenance/Dockerfile index 865a4c330..8cc3d6c28 100644 --- a/maintenance/Dockerfile +++ b/maintenance/Dockerfile @@ -1,13 +1,24 @@ -FROM mongo:4 +FROM humanconnection/neo4j:latest as base + +RUN apk upgrade --update +RUN apk add mongodb mongodb-tools openssh nodejs yarn -RUN apt-get update && apt-get -y install --no-install-recommends wget apt-transport-https \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* -RUN wget -O - https://debian.neo4j.org/neotechnology.gpg.key | apt-key add - -RUN echo 'deb https://debian.neo4j.org/repo stable/' | tee /etc/apt/sources.list.d/neo4j.list -RUN apt-get update && apt-get -y install --no-install-recommends openjdk-8-jre openssh-client neo4j rsync \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* COPY migration ./migration COPY migrate.sh /usr/local/bin/migrate COPY sync_uploads.sh /usr/local/bin/sync_uploads + + +ENV NODE_ENV=maintenance +FROM humanconnection/nitro-backend:latest as backend +FROM base +COPY --from=backend /nitro-backend /nitro-backend + +COPY seeding/package.json . +# Install graphql-request manually, it's required for seeding and not included +# in backend's preinstalled node_modules/ +RUN yarn install && \ + cp -r ./node_modules/* /nitro-backend/node_modules/ && \ + rm -rf ./node_modules/ yarn.lock && \ + mv package.json /nitro-backend/package.json +# We have to do this odd copying to prevent cleaning `node_modules` folder which +# would happen if we `yarn install|add` in the target directory diff --git a/maintenance/seeding/.env.template b/maintenance/seeding/.env.template new file mode 100644 index 000000000..abc62b2dc --- /dev/null +++ b/maintenance/seeding/.env.template @@ -0,0 +1,12 @@ +NEO4J_URI=bolt://localhost:7687 +NEO4J_USER=neo4j +NEO4J_PASSWORD=letmein +GRAPHQL_PORT=4000 +GRAPHQL_URI=http://localhost:4000 +CLIENT_URI=http://localhost:3000 +MOCK=false + +JWT_SECRET="b/&&7b78BF&fv/Vd" +MAPBOX_TOKEN="pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ" + +PRIVATE_KEY_PASSPHRASE="a7dsf78sadg87ad87sfagsadg78" diff --git a/maintenance/seeding/package.json b/maintenance/seeding/package.json new file mode 100644 index 000000000..f3e5c115f --- /dev/null +++ b/maintenance/seeding/package.json @@ -0,0 +1,12 @@ +{ + "license": "MIT", + "scripts": { + "start": "node dist/", + "db:script:seed": "wait-on tcp:4001 && node dist/seed/seed-db.js", + "db:reset": "node dist/seed/reset-db.js", + "db:seed": "cross-env GRAPHQL_URI=http://localhost:4001 GRAPHQL_PORT=4001 DISABLED_MIDDLEWARES=permissions run-p --race start db:script:seed" + }, + "dependencies": { + "graphql-request": "*" + } +}