From bd0bfe17e0b41cf64f553a64b202e5b077b45991 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 24 Mar 2021 18:25:33 +0100 Subject: [PATCH 1/9] Added basic building migration --- data/instance-b/instance.py | 5 +- data/instance-c/instance.py | 2 +- data/migrate-building/migrate_building.py | 77 +++++++++++++++++++++++ docker-compose.yml | 4 ++ 4 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 data/migrate-building/migrate_building.py diff --git a/data/instance-b/instance.py b/data/instance-b/instance.py index 36e36f6..acba44a 100644 --- a/data/instance-b/instance.py +++ b/data/instance-b/instance.py @@ -33,7 +33,7 @@ logger = logging.getLogger() logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler(sys.stdout)) -rabotnik = Rabotnik("instance-b", "mockeddb") +rabotnik = Rabotnik("instance-b") message_bus = MessageBus() logger.info("running: instance b") @@ -45,7 +45,8 @@ def building(building_id): The payload is the *building_id* """ - rules = [BuildingDemo(rabotnik.storage)] + storage = rabotnik.get_storage(selector="mockeddb") + rules = [BuildingDemo(storage)] rules[0].evaluate(building_id) diff --git a/data/instance-c/instance.py b/data/instance-c/instance.py index 894cc7e..4c8e0bb 100644 --- a/data/instance-c/instance.py +++ b/data/instance-c/instance.py @@ -33,7 +33,7 @@ logger = logging.getLogger() logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler(sys.stdout)) -rabotnik = Rabotnik("instance-c", "mockeddb") +rabotnik = Rabotnik("instance-c") message_bus = MessageBus() logger.info("running: instance c") diff --git a/data/migrate-building/migrate_building.py b/data/migrate-building/migrate_building.py new file mode 100644 index 0000000..fff5dde --- /dev/null +++ b/data/migrate-building/migrate_building.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2020-2021: +# Helmholtz-Zentrum Potsdam Deutsches GeoForschungsZentrum GFZ +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. + +import logging +import asyncio + +# pylint: disable=import-error +from rabotnik import Rabotnik +from rabotnik.bus import MessageBus +from rabotnik import Rule + + +rabotnik_logger = logging.getLogger("rabotnik") +rabotnik_logger.setLevel(logging.DEBUG) + +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +# Initiate the rabotnik +rabotnik = Rabotnik("building-migration") + + +class MigrateBuilding(Rule): + def __init__(self, storage_from, storage_to): + self.storage_from = storage_from + self.storage_to = storage_to + + async def evaluate(self, payload: dict): + """A simple demo rule accessing a local database.""" + building_id = payload['building_id'] + + # Pull the building data from storage_from + for row in await self.storage_from.get_results( + f"SELECT * FROM buildings WHERE id={building_id}"): + + # Push the building data to storage_to + async with self.storage_to.connection.cursor() as cur: + await cur.execute("INSERT INTO buildings (id, geometry) VALUES (%s,%s)", row) + + +async def main(): + + # Initiate the message bus + message_bus = MessageBus() + logger.info("running: receiver") + + # Get a storage connection to `database_1` (source) + storage_a = rabotnik.get_storage('postgresql') + await storage_a.connect(user="postgres", host="localhost", port="5433") + + # Get a storage connection to `database_2` (receiver) + storage_b = rabotnik.get_storage('postgresql') + await storage_b.connect(user="postgres", host="localhost", port="5434") + + # await message_bus.subscribe('building', print_payload) + rule = MigrateBuilding(storage_a, storage_b) + await message_bus.subscribe('building', rule.evaluate) + + +loop = asyncio.get_event_loop() +loop.create_task(main()) +loop.run_forever() diff --git a/docker-compose.yml b/docker-compose.yml index 9fae63c..547553c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -76,6 +76,8 @@ services: build: https://git.gfz-potsdam.de/dynamicexposure/server-components/containers/docker-obm-database.git expose: - "5432" + ports: + - "5433:5432" environment: POSTGRES_HOST_AUTH_METHOD: trust @@ -84,5 +86,7 @@ services: build: https://git.gfz-potsdam.de/dynamicexposure/server-components/containers/docker-obm-database.git expose: - "5432" + ports: + - "5434:5432" environment: POSTGRES_HOST_AUTH_METHOD: trust -- GitLab From 729e34270b373a15e7bf5a3f35e28b1c54614118 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Thu, 25 Mar 2021 18:48:28 +0100 Subject: [PATCH 2/9] fixed storage connection --- data/instance-b/instance.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/instance-b/instance.py b/data/instance-b/instance.py index acba44a..a4bd117 100644 --- a/data/instance-b/instance.py +++ b/data/instance-b/instance.py @@ -46,6 +46,8 @@ def building(building_id): """ storage = rabotnik.get_storage(selector="mockeddb") + storage.connect() + rules = [BuildingDemo(storage)] rules[0].evaluate(building_id) -- GitLab From c5038318a49390a7cfb53eb539cc66caa1a76588 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Thu, 25 Mar 2021 20:34:23 +0100 Subject: [PATCH 3/9] Integrated migration example into docker structure --- data/instance-migrate/__init__.py | 17 ++++++++ .../instance.py} | 31 ++++---------- data/instance-migrate/rules/__init__.py | 17 ++++++++ data/instance-migrate/rules/migration_demo.py | 42 +++++++++++++++++++ docker-compose.yml | 9 ++++ 5 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 data/instance-migrate/__init__.py rename data/{migrate-building/migrate_building.py => instance-migrate/instance.py} (59%) create mode 100644 data/instance-migrate/rules/__init__.py create mode 100644 data/instance-migrate/rules/migration_demo.py diff --git a/data/instance-migrate/__init__.py b/data/instance-migrate/__init__.py new file mode 100644 index 0000000..cfc59ab --- /dev/null +++ b/data/instance-migrate/__init__.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2020-2021: +# Helmholtz-Zentrum Potsdam Deutsches GeoForschungsZentrum GFZ +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. diff --git a/data/migrate-building/migrate_building.py b/data/instance-migrate/instance.py similarity index 59% rename from data/migrate-building/migrate_building.py rename to data/instance-migrate/instance.py index fff5dde..36ffcea 100644 --- a/data/migrate-building/migrate_building.py +++ b/data/instance-migrate/instance.py @@ -22,7 +22,8 @@ import asyncio # pylint: disable=import-error from rabotnik import Rabotnik from rabotnik.bus import MessageBus -from rabotnik import Rule + +from rules.migration_demo import MigrateBuilding rabotnik_logger = logging.getLogger("rabotnik") @@ -35,24 +36,6 @@ logger.setLevel(logging.DEBUG) rabotnik = Rabotnik("building-migration") -class MigrateBuilding(Rule): - def __init__(self, storage_from, storage_to): - self.storage_from = storage_from - self.storage_to = storage_to - - async def evaluate(self, payload: dict): - """A simple demo rule accessing a local database.""" - building_id = payload['building_id'] - - # Pull the building data from storage_from - for row in await self.storage_from.get_results( - f"SELECT * FROM buildings WHERE id={building_id}"): - - # Push the building data to storage_to - async with self.storage_to.connection.cursor() as cur: - await cur.execute("INSERT INTO buildings (id, geometry) VALUES (%s,%s)", row) - - async def main(): # Initiate the message bus @@ -60,16 +43,16 @@ async def main(): logger.info("running: receiver") # Get a storage connection to `database_1` (source) - storage_a = rabotnik.get_storage('postgresql') - await storage_a.connect(user="postgres", host="localhost", port="5433") + storage_a = rabotnik.get_storage("postgresql") + await storage_a.connect(user="postgres", host="database-1", port="5432") # Get a storage connection to `database_2` (receiver) - storage_b = rabotnik.get_storage('postgresql') - await storage_b.connect(user="postgres", host="localhost", port="5434") + storage_b = rabotnik.get_storage("postgresql") + await storage_b.connect(user="postgres", host="database-1", port="5432") # await message_bus.subscribe('building', print_payload) rule = MigrateBuilding(storage_a, storage_b) - await message_bus.subscribe('building', rule.evaluate) + await message_bus.subscribe("building", rule.evaluate) loop = asyncio.get_event_loop() diff --git a/data/instance-migrate/rules/__init__.py b/data/instance-migrate/rules/__init__.py new file mode 100644 index 0000000..cfc59ab --- /dev/null +++ b/data/instance-migrate/rules/__init__.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2020-2021: +# Helmholtz-Zentrum Potsdam Deutsches GeoForschungsZentrum GFZ +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. diff --git a/data/instance-migrate/rules/migration_demo.py b/data/instance-migrate/rules/migration_demo.py new file mode 100644 index 0000000..4ab9dea --- /dev/null +++ b/data/instance-migrate/rules/migration_demo.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2020-2021: +# Helmholtz-Zentrum Potsdam Deutsches GeoForschungsZentrum GFZ +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero +# General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. + +import logging + +from rabotnik import Rule # pylint: disable=import-error + +logger = logging.getLogger() + + +class MigrateBuilding(Rule): + def __init__(self, storage_from, storage_to): + self.storage_from = storage_from + self.storage_to = storage_to + + async def evaluate(self, payload: dict): + """A simple demo rule accessing a local database.""" + building_id = payload["building_id"] + + # Pull the building data from storage_from + for row in await self.storage_from.get_results( + f"SELECT * FROM buildings WHERE id={building_id}" + ): + + # Push the building data to storage_to + async with self.storage_to.connection.cursor() as cur: + await cur.execute("INSERT INTO buildings (id, geometry) VALUES (%s,%s)", row) diff --git a/docker-compose.yml b/docker-compose.yml index 547553c..156ba6b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -71,6 +71,15 @@ services: volumes: - ./data/instance-c:/srv/rabotnik-instance + # rabotnik instance migration + rabotnik-instance-migration: + env_file: .env + build: https://git.gfz-potsdam.de/dynamicexposure/rabotnik/docker-rabotnik-instance.git + depends_on: + - rabotnik-message-bus + volumes: + - ./data/instance-migrate:/srv/rabotnik-instance + # Example database 1 database-1: build: https://git.gfz-potsdam.de/dynamicexposure/server-components/containers/docker-obm-database.git -- GitLab From ddd077100364abd3cea63f280b2e33d4bb26c446 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Mon, 12 Apr 2021 19:16:20 +0200 Subject: [PATCH 4/9] configure instances through yaml files --- LICENSE | 2 +- README.rst | 2 +- data/instance-a/instance.py | 3 +++ data/instance-a/rabotnik-message-bus.yml | 4 ++++ data/instance-b/instance.py | 5 ++++- data/instance-b/rabotnik-message-bus.yml | 4 ++++ data/instance-c/instance.py | 5 ++++- data/instance-c/rabotnik-message-bus.yml | 4 ++++ data/instance-migrate/instance.py | 7 +++++-- data/instance-migrate/rabotnik-message-bus.yml | 4 ++++ data/instance-migrate/storage-a.yml | 6 ++++++ data/instance-migrate/storage-b.yml | 6 ++++++ docker-compose.override.yml | 6 ++++++ 13 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 data/instance-a/rabotnik-message-bus.yml create mode 100644 data/instance-b/rabotnik-message-bus.yml create mode 100644 data/instance-c/rabotnik-message-bus.yml create mode 100644 data/instance-migrate/rabotnik-message-bus.yml create mode 100644 data/instance-migrate/storage-a.yml create mode 100644 data/instance-migrate/storage-b.yml diff --git a/LICENSE b/LICENSE index 1e86876..af513de 100644 --- a/LICENSE +++ b/LICENSE @@ -616,4 +616,4 @@ an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. - END OF TERMS AND CONDITIONS \ No newline at end of file + END OF TERMS AND CONDITIONS diff --git a/README.rst b/README.rst index 9f90627..85e035e 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ rabotnik demo ============= -Simplest showcase for +Simplest showcase for `rabotnik `__ spinnig up two of its instances with example computation content and a `main message bus `__ diff --git a/data/instance-a/instance.py b/data/instance-a/instance.py index 610409b..61a6dde 100644 --- a/data/instance-a/instance.py +++ b/data/instance-a/instance.py @@ -41,6 +41,9 @@ async def main(): # Initiate the message bus message_bus = MessageBus() + # pylint: disable=no-value-for-parameter + await message_bus.connect(config_file="rabotnik-message-bus.yml") + logger.info("running: instance a") # Trigger a very simple 'building' task diff --git a/data/instance-a/rabotnik-message-bus.yml b/data/instance-a/rabotnik-message-bus.yml new file mode 100644 index 0000000..149da0b --- /dev/null +++ b/data/instance-a/rabotnik-message-bus.yml @@ -0,0 +1,4 @@ +--- +username: test +password: test +host: rabotnik-message-bus diff --git a/data/instance-b/instance.py b/data/instance-b/instance.py index a4bd117..c72f823 100644 --- a/data/instance-b/instance.py +++ b/data/instance-b/instance.py @@ -34,7 +34,6 @@ logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler(sys.stdout)) rabotnik = Rabotnik("instance-b") -message_bus = MessageBus() logger.info("running: instance b") @@ -53,6 +52,10 @@ def building(building_id): async def main(): + message_bus = MessageBus() + + # pylint: disable=no-value-for-parameter + await message_bus.connect(config_file="rabotnik-message-bus.yml") await message_bus.subscribe("building", building) diff --git a/data/instance-b/rabotnik-message-bus.yml b/data/instance-b/rabotnik-message-bus.yml new file mode 100644 index 0000000..149da0b --- /dev/null +++ b/data/instance-b/rabotnik-message-bus.yml @@ -0,0 +1,4 @@ +--- +username: test +password: test +host: rabotnik-message-bus diff --git a/data/instance-c/instance.py b/data/instance-c/instance.py index 4c8e0bb..0757990 100644 --- a/data/instance-c/instance.py +++ b/data/instance-c/instance.py @@ -34,7 +34,6 @@ logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler(sys.stdout)) rabotnik = Rabotnik("instance-c") -message_bus = MessageBus() logger.info("running: instance c") @@ -50,6 +49,10 @@ def building(building_id): async def main(): + message_bus = MessageBus() + + # pylint: disable=no-value-for-parameter + await message_bus.connect(config_file="rabotnik-message-bus.yml") await message_bus.subscribe("building", building) diff --git a/data/instance-c/rabotnik-message-bus.yml b/data/instance-c/rabotnik-message-bus.yml new file mode 100644 index 0000000..149da0b --- /dev/null +++ b/data/instance-c/rabotnik-message-bus.yml @@ -0,0 +1,4 @@ +--- +username: test +password: test +host: rabotnik-message-bus diff --git a/data/instance-migrate/instance.py b/data/instance-migrate/instance.py index 36ffcea..8507ff3 100644 --- a/data/instance-migrate/instance.py +++ b/data/instance-migrate/instance.py @@ -40,15 +40,18 @@ async def main(): # Initiate the message bus message_bus = MessageBus() + + # pylint: disable=no-value-for-parameter + await message_bus.connect(config_file="rabotnik-message-bus.yml") logger.info("running: receiver") # Get a storage connection to `database_1` (source) storage_a = rabotnik.get_storage("postgresql") - await storage_a.connect(user="postgres", host="database-1", port="5432") + await storage_a.connect(config_file="storage-a.yml") # Get a storage connection to `database_2` (receiver) storage_b = rabotnik.get_storage("postgresql") - await storage_b.connect(user="postgres", host="database-1", port="5432") + await storage_b.connect(config_file="storage-b.yml") # await message_bus.subscribe('building', print_payload) rule = MigrateBuilding(storage_a, storage_b) diff --git a/data/instance-migrate/rabotnik-message-bus.yml b/data/instance-migrate/rabotnik-message-bus.yml new file mode 100644 index 0000000..149da0b --- /dev/null +++ b/data/instance-migrate/rabotnik-message-bus.yml @@ -0,0 +1,4 @@ +--- +username: test +password: test +host: rabotnik-message-bus diff --git a/data/instance-migrate/storage-a.yml b/data/instance-migrate/storage-a.yml new file mode 100644 index 0000000..1b0e3a0 --- /dev/null +++ b/data/instance-migrate/storage-a.yml @@ -0,0 +1,6 @@ +--- +user: test +password: test +dbname: buildings +host: database-1 +port: 5432 diff --git a/data/instance-migrate/storage-b.yml b/data/instance-migrate/storage-b.yml new file mode 100644 index 0000000..acbe99d --- /dev/null +++ b/data/instance-migrate/storage-b.yml @@ -0,0 +1,6 @@ +--- +user: test +password: test +dbname: buildings +host: database-2 +port: 5432 diff --git a/docker-compose.override.yml b/docker-compose.override.yml index e8352a8..f060006 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -46,3 +46,9 @@ services: build: ../../containers/docker-rabotnik-instance volumes: - ../rabotnik:/srv/rabotnik + + # rabotnik instance migration + rabotnik-instance-migration: + build: ../../containers/docker-rabotnik-instance + volumes: + - ../rabotnik:/srv/rabotnik -- GitLab From 7e146beb13fe940561dad4413d3c664f93f6d3eb Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 9 Jun 2021 15:37:55 +0200 Subject: [PATCH 5/9] adopt changes storage credentials --- data/instance-migrate/storage-a.yml | 4 ++-- data/instance-migrate/storage-b.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/instance-migrate/storage-a.yml b/data/instance-migrate/storage-a.yml index 1b0e3a0..4f3b0f4 100644 --- a/data/instance-migrate/storage-a.yml +++ b/data/instance-migrate/storage-a.yml @@ -1,6 +1,6 @@ --- -user: test -password: test +user: postgres +password: postgres dbname: buildings host: database-1 port: 5432 diff --git a/data/instance-migrate/storage-b.yml b/data/instance-migrate/storage-b.yml index acbe99d..a489c80 100644 --- a/data/instance-migrate/storage-b.yml +++ b/data/instance-migrate/storage-b.yml @@ -1,6 +1,6 @@ --- -user: test -password: test +user: postgres +password: postgres dbname: buildings host: database-2 port: 5432 -- GitLab From 251db3357d79d67734ce0fb41eada612c948ac14 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 9 Jun 2021 15:38:46 +0200 Subject: [PATCH 6/9] Fixed rcom example hostname and credentials --- data/rcom-example/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/rcom-example/run.sh b/data/rcom-example/run.sh index 18b36ac..0f3ad96 100755 --- a/data/rcom-example/run.sh +++ b/data/rcom-example/run.sh @@ -28,4 +28,4 @@ psql -h database-2 -U postgres -f /tmp/database/create_database.sql psql -h database-2 -U postgres -d buildings -f /tmp/database/create_table.sql # Run rcom test -wait-for-it -t 30 $RABOTNIK_MESSAGE_BUS_HOST:$RABOTNIK_MESSAGE_BUS_PORT -- sleep 15; rcom --building-id=42 +wait-for-it -t 30 $RABOTNIK_MESSAGE_BUS_HOST:$RABOTNIK_MESSAGE_BUS_PORT -- sleep 15; rcom --username $RABOTNIK_MESSAGE_BUS_USER --password $RABOTNIK_MESSAGE_BUS_PASSWORD --hostname $RABOTNIK_MESSAGE_BUS_HOST:$RABOTNIK_MESSAGE_BUS_PORT --building-id=42 -- GitLab From d00b0594591a2360e75d6668daa1d5eaca07f195 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 9 Jun 2021 15:39:42 +0200 Subject: [PATCH 7/9] Fixed dependencies --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 156ba6b..ebd0a8b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,6 +77,9 @@ services: build: https://git.gfz-potsdam.de/dynamicexposure/rabotnik/docker-rabotnik-instance.git depends_on: - rabotnik-message-bus + - database-1 + - database-2 + volumes: - ./data/instance-migrate:/srv/rabotnik-instance -- GitLab From 3804f59ea5c728022cee03715af4504a73983d27 Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 9 Jun 2021 15:40:04 +0200 Subject: [PATCH 8/9] Removed rcom volumes in override --- docker-compose.override.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index f060006..72fe3ba 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -24,10 +24,6 @@ services: # rabotnik rcom rabotnik-rcom: build: ../../containers/docker-rcom-instance - volumes: - - ../rabotnik:/srv/rabotnik - - ../rcom:/srv/rcom - - ./data/database:/tmp/database # rabotnik instance a rabotnik-instance-a: -- GitLab From 392b884a52bb934fbc918e2e713ea4022831b13c Mon Sep 17 00:00:00 2001 From: Marius Kriegerowski Date: Wed, 9 Jun 2021 15:40:49 +0200 Subject: [PATCH 9/9] Added .idea to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6064fb5..bb71f1a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +.idea __pycache__ results.db -- GitLab