From 01a145be29a272ae1cdd8ed05f4a634131cfd79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 4 Feb 2019 15:43:21 +0100 Subject: [PATCH] Container db-migration-worker need no volumes You can simply run `docker-compose exec db-migration-worker migrate` and that's it. Of course you have to provide all the environment variables. --- .dockerignore | 1 - db-migration-worker/Dockerfile | 3 +-- db-migration-worker/migrate.sh | 4 +++- db-migration-worker/{ => migration}/mongo/import.sh | 3 +-- db-migration-worker/{ => migration}/neo4j/badges.cql | 0 .../{ => migration}/neo4j/categories.cql | 0 .../{ => migration}/neo4j/comments.cql | 0 .../{ => migration}/neo4j/contributions.cql | 0 .../{ => migration}/neo4j/follows.cql | 0 db-migration-worker/{ => migration}/neo4j/import.sh | 12 ++++++++++-- db-migration-worker/{ => migration}/neo4j/shouts.cql | 0 db-migration-worker/{ => migration}/neo4j/users.cql | 0 docker-compose.override.yml | 3 ++- 13 files changed, 17 insertions(+), 9 deletions(-) mode change 100644 => 100755 db-migration-worker/migrate.sh rename db-migration-worker/{ => migration}/mongo/import.sh (91%) rename db-migration-worker/{ => migration}/neo4j/badges.cql (100%) rename db-migration-worker/{ => migration}/neo4j/categories.cql (100%) rename db-migration-worker/{ => migration}/neo4j/comments.cql (100%) rename db-migration-worker/{ => migration}/neo4j/contributions.cql (100%) rename db-migration-worker/{ => migration}/neo4j/follows.cql (100%) rename db-migration-worker/{ => migration}/neo4j/import.sh (55%) rename db-migration-worker/{ => migration}/neo4j/shouts.cql (100%) rename db-migration-worker/{ => migration}/neo4j/users.cql (100%) diff --git a/.dockerignore b/.dockerignore index dba77200f..31f5b28f3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -11,7 +11,6 @@ docker-compose*.yml ./*.png ./*.log -kubernetes/ node_modules/ scripts/ dist/ diff --git a/db-migration-worker/Dockerfile b/db-migration-worker/Dockerfile index 7d6203057..cd6e57258 100644 --- a/db-migration-worker/Dockerfile +++ b/db-migration-worker/Dockerfile @@ -1,4 +1,3 @@ -FROM neo4j:3.5.0 as neo4j FROM mongo:4 RUN apt-get update @@ -9,5 +8,5 @@ RUN apt-get update RUN apt-get -y install --no-install-recommends openjdk-8-jre openssh-client neo4j rsync \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -COPY neo4j/ mongo/ ./ +COPY migration ./migration COPY migrate.sh /usr/local/bin/migrate diff --git a/db-migration-worker/migrate.sh b/db-migration-worker/migrate.sh old mode 100644 new mode 100755 index 0aea5bc89..108453bba --- a/db-migration-worker/migrate.sh +++ b/db-migration-worker/migrate.sh @@ -1,2 +1,4 @@ #!/usr/bin/env bash -/mongo/import.sh && /neo4j/import.sh +set -e +/migration/mongo/import.sh +/migration/neo4j/import.sh diff --git a/db-migration-worker/mongo/import.sh b/db-migration-worker/migration/mongo/import.sh similarity index 91% rename from db-migration-worker/mongo/import.sh rename to db-migration-worker/migration/mongo/import.sh index d93900339..4f59551aa 100755 --- a/db-migration-worker/mongo/import.sh +++ b/db-migration-worker/migration/mongo/import.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -for var in "SSH_USERNAME" "SSH_HOST" "MONGODB_USERNAME" "MONGODB_PASSWORD" "MONGODB_DATABASE" "MONGODB_AUTH_DB" "UPLOADS_DIRECTORY" +for var in "SSH_USERNAME" "SSH_HOST" "MONGODB_USERNAME" "MONGODB_PASSWORD" "MONGODB_DATABASE" "MONGODB_AUTH_DB" do if [[ -z "${!var}" ]]; then echo "${var} is undefined" @@ -15,7 +15,6 @@ echo "MONGODB_USERNAME ${MONGODB_USERNAME}" echo "MONGODB_PASSWORD ${MONGODB_PASSWORD}" echo "MONGODB_DATABASE ${MONGODB_DATABASE}" echo "MONGODB_AUTH_DB ${MONGODB_AUTH_DB}" -echo "UPLOADS_DIRECTORY ${UPLOADS_DIRECTORY}" echo "-------------------------------------------------" mongo ${MONGODB_DATABASE} --eval "db.dropDatabase();" diff --git a/db-migration-worker/neo4j/badges.cql b/db-migration-worker/migration/neo4j/badges.cql similarity index 100% rename from db-migration-worker/neo4j/badges.cql rename to db-migration-worker/migration/neo4j/badges.cql diff --git a/db-migration-worker/neo4j/categories.cql b/db-migration-worker/migration/neo4j/categories.cql similarity index 100% rename from db-migration-worker/neo4j/categories.cql rename to db-migration-worker/migration/neo4j/categories.cql diff --git a/db-migration-worker/neo4j/comments.cql b/db-migration-worker/migration/neo4j/comments.cql similarity index 100% rename from db-migration-worker/neo4j/comments.cql rename to db-migration-worker/migration/neo4j/comments.cql diff --git a/db-migration-worker/neo4j/contributions.cql b/db-migration-worker/migration/neo4j/contributions.cql similarity index 100% rename from db-migration-worker/neo4j/contributions.cql rename to db-migration-worker/migration/neo4j/contributions.cql diff --git a/db-migration-worker/neo4j/follows.cql b/db-migration-worker/migration/neo4j/follows.cql similarity index 100% rename from db-migration-worker/neo4j/follows.cql rename to db-migration-worker/migration/neo4j/follows.cql diff --git a/db-migration-worker/neo4j/import.sh b/db-migration-worker/migration/neo4j/import.sh similarity index 55% rename from db-migration-worker/neo4j/import.sh rename to db-migration-worker/migration/neo4j/import.sh index d5a846384..9a5045d62 100755 --- a/db-migration-worker/neo4j/import.sh +++ b/db-migration-worker/migration/neo4j/import.sh @@ -1,9 +1,17 @@ #!/usr/bin/env bash set -e +for var in "NEO4J_URI" +do + if [[ -z "${!var}" ]]; then + echo "${var} is undefined" + exit 1 + fi +done + SCRIPT_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -echo "MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r;" | cypher-shell +echo "MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r;" | cypher-shell -a $NEO4J_URI for collection in "badges" "categories" "users" "follows" "contributions" "shouts" "comments" do - echo "Import ${collection}..." && cypher-shell < $SCRIPT_DIRECTORY/$collection.cql + echo "Import ${collection}..." && cypher-shell -a $NEO4J_URI < $SCRIPT_DIRECTORY/$collection.cql done diff --git a/db-migration-worker/neo4j/shouts.cql b/db-migration-worker/migration/neo4j/shouts.cql similarity index 100% rename from db-migration-worker/neo4j/shouts.cql rename to db-migration-worker/migration/neo4j/shouts.cql diff --git a/db-migration-worker/neo4j/users.cql b/db-migration-worker/migration/neo4j/users.cql similarity index 100% rename from db-migration-worker/neo4j/users.cql rename to db-migration-worker/migration/neo4j/users.cql diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 205d964e0..6bc594099 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -27,6 +27,8 @@ services: - ./db-migration-worker/.ssh/:/root/.ssh/ networks: - hc-network + depends_on: + - backend environment: - NEO4J_URI=bolt://neo4j:7687 - "SSH_USERNAME=${SSH_USERNAME}" @@ -35,7 +37,6 @@ services: - "MONGODB_PASSWORD=${MONGODB_PASSWORD}" - "MONGODB_AUTH_DB=${MONGODB_AUTH_DB}" - "MONGODB_DATABASE=${MONGODB_DATABASE}" - - "UPLOADS_DIRECTORY=${UPLOADS_DIRECTORY}" command: "--smallfiles --logpath=/dev/null" volumes: