FIRST STEP TO ENSURE GOOD EOL CHARACTERS FOR GIT
On windows 10:
Modify the global gitconfig file
Go to your gitconfig file:
C:\Users\<username>\.gitconfig
Open it with notepad++ and add the following options:
[core]
eol = lf
autocrlf = false
Save file and exit.
Modify the system gitconfig file
Go to your gitconfig file:
Open it with notepad++ as administrator and add the following options:
[core]
eol = lf
autocrlf = false
Save file and exit
PULL THE MICORR PROJECT FROM THE GIT REPOSITORY
Actual adress of MiCorr git repository https://github.com/HEG-Arc/MiCorr.git
SET THE DOCKER COMPOSE FILE FOR DEV VERSION
Those steps shall always be done when you enter in your project
source local.sh
Verify that the compose file is properly set up:
echo $COMPOSE_FILE
That command should output the following in the terminal:
dev.yml
TO BUILD YOUR MICORR PROJECT
Create new .env file from env.example into project root:
cp env.example .env
Cleanup of everything (containers, volumes and networks) to start a clean project:
DO NOT USE THIS COMMAND IF YOU WANT TO KEEP THE DATAS IN YOUR DATABASES
docker-compose down --rmi all -v --remove-orphans
Add the postgres password into the dev.yml file:
POSTGRES_PASSWORD
variable- POSTGRES_PASSWORD=mysecretpass
as follow:
services:
postgres:
build: ./compose/postgres
volumes:
- postgres_data:/var/lib/postgresql/data
- ./data/psql-backup:/backups
environment:
- POSTGRES_USER=micorr
- POSTGRES_PASSWORD=mysecretpass # <= THIS IS WHERE YOU MUST ADD THE VALUE
ports:
- "5432:5432"
Build and start your containers with the following shell command:
docker-compose up -d
Force the build of your containers before starting them with the following shell command:
docker-compose up -d --build
Verify that all your containers are up and running:
docker ps
This command shall output a similar list (the names and ports of the containers should be the same):
CONTAINER ID IMAGE ... STATUS PORTS NAMES
eaf1a1d62287 81bc6fbcaf09 ... Up 55 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp micorr_node_1
8852aac1d306 efeea1848592 ... Up 55 minutes 0.0.0.0:7474->7474/tcp, :::7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp, :::7687->7687/tcp micorr_neo4j_1
4a4cc9b23f0e d8dc93872711 ... Up 55 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp micorr_postgres_1
7129958fc202 9ebd8a2d29ba ... Up 2 seconds 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp micorr_django_1
153bc1d7e39d blacktop/elasticsearch:2.4 ... Up 55 minutes 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp micorr_elast
If one container is not running, you can start it with the following command:
docker compose start <container name>
If the container is not starting after this command, restart from step 4: Cleanup of everything.
Copy the all the backups into your root:
backup_2021_07_15T13_58_16.sql
micorr-media-2021-07-15.tar.gz
graphdb_20210715_152917.dump
Stop django container:
docker compose stop django
Copy the postgres backup into the volume of postgres ./data/psql-backup/
:
cp backup_2021_07_15T13_58_16.sql ./data/psql-backup/backup_2021_07_15T13_58_16.sql
Check that the backup is present in the postgres container with:
docker compose exec postgres list-backups
The command shall return a list as the following one with the name of the backup backup_2021_07_15T13_58_16.sql
present:
listing available backups
-------------------------
backup_2021_07_15T13_58_16.sql backup_2021_07_15T15_19_44.sql
tar -xzvf micorr-media-2021-07-15.tar.gz
A media
directory at ./micorr/media
was created with all the resources inside the .tar
file.
Restore the postgres db with the backup:
docker compose exec postgres restore backup_2021_07_15T13_58_16.sql
Stop the neo4j container
docker compose stop neo4j
Copy the no4j initial data dump into the neo4j compose files:
cp graphdb_20210715_152917.dump compose/neo4j/initial_neo4j-admin.dump
The neo4j db dockerfile will copy the file named initial_neo4j-admin.dump
into the neo4j container and the script bootstrap_data.sh
will initialize the neo4j db with the content of initial_neo4j-admin.dump
.
Rebuild the neo4j container
docker compose build neo4j
The terminal shall indicate the copy of initial_neo4j-admin.dump
into the neo4j container:
[+] Building 5.8s (10/10) FINISHED
...
=> [1/4] FROM docker.io/library/neo4j:4.0.11@sha256:2b8d71eb2e6e6e162a723c733c1c6a27a62c54774108523a5a4c15cf9aa55c19 0.0s
=> [internal] load build context 1.0s
=> => transferring context: 26.08MB 1.0s
=> CACHED [2/4] COPY backup.sh bootstrap_data.sh initial_neo4j-admin*.dump / 0.0s
=> CACHED [3/4] COPY apoc-4.0.0.18-all.jar /var/lib/neo4j/plugins 0.0s
=> CACHED [4/4] RUN chmod +x /backup.sh 0.0s
...
Rename the initial_neo4j-admin.dump
from the compose/neo4j/
directory into no_initial_neo4j-admin.dump
to prevent the rewrite of neo4j db contents at container startup
mv compose/neo4j/initial_neo4j-admin.dump compose/neo4j/no_initial_neo4j-admin.dump
Restart all containers with
docker compose up -d