From 885ad494111e98e1ddd120ad3cb9dd09fde1c739 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Wed, 29 Mar 2017 08:56:30 -0500 Subject: [PATCH 01/14] Dockerizing essential services --- docker-compose-dev.yml | 21 +++++++++++++++++++++ docker-compose.yml | 39 +++++++++++++++++++++++++++------------ 2 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 docker-compose-dev.yml diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml new file mode 100644 index 0000000..32c5b24 --- /dev/null +++ b/docker-compose-dev.yml @@ -0,0 +1,21 @@ +version: '2' +services: + db: + image: mysql + environment: + - MYSQL_ROOT_PASSWORD=root + volumes: + - ./database_setup.sql:/docker-entrypoint-initdb.d/schema.sql:ro + ports: + - 3306 + groot: + build: . + command: /bin/bash -c "./docker_go_symlink.sh && ./dev_spinup.sh" + working_dir: /groot-deploy + volumes: + - .:/groot-deploy + ports: + - "8000:8000" + - "5000:5000" + depends_on: + - db diff --git a/docker-compose.yml b/docker-compose.yml index 8025988..1c0a097 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ version: '2' services: - db: + db: image: mysql environment: - MYSQL_ROOT_PASSWORD=root @@ -8,14 +8,29 @@ services: - ./database_setup.sql:/docker-entrypoint-initdb.d/schema.sql:ro ports: - 3306 - groot: - build: . - command: /bin/bash -c "./docker_go_symlink.sh && ./dev_spinup.sh" - working_dir: /groot-deploy - volumes: - - .:/groot-deploy - ports: - - "8000:8000" - - "5000:5000" - depends_on: - - db + + groot-desktop-frontend: + build: groot-desktop-frontend + depends_on: + - groot-events-service + - groot-users-service + - groot-groups-service + ports: + - "5000:5000" + + groot-events-service: + build: groot-events-service + ports: + - "8002:8002" + + groot-groups-service: + build: groot-events-service + ports: + - "9001:9001" + + groot-users-service: + build: groot-users-service + ports: + - "8001:8001" + depends_on: + - db From 3a53f7146347ffe9f1e8b8697368722c8a7dd279 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Wed, 29 Mar 2017 11:48:51 -0500 Subject: [PATCH 02/14] Dockerize all services --- docker-compose.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 1c0a097..41f3ad6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,15 @@ services: - ./database_setup.sql:/docker-entrypoint-initdb.d/schema.sql:ro ports: - 3306 + restart: always + + groot-credits-service: + build: groot-credits-service + ports: + - "8765:8765" + depends_on: + - db + restart: always groot-desktop-frontend: build: groot-desktop-frontend @@ -15,18 +24,54 @@ services: - groot-events-service - groot-users-service - groot-groups-service + - groot-quotes-service ports: - "5000:5000" + restart: always groot-events-service: build: groot-events-service ports: - "8002:8002" + restart: always groot-groups-service: build: groot-events-service ports: - "9001:9001" + restart: always + + groot-meme-service: + build: groot-meme-service + ports: + - "42069:42069" + depends_on: + - db + restart: always + + groot-merch-service: + build: groot-merch-service + ports: + - "6969:6969" + depends_on: + - db + restart: always + + groot-quotes-service: + build: groot-quotes-service + ports: + - "9494:9494" + depends_on: + - db + restart: always + + groot-recruiters-service: + build: groot-recruiters-service + ports: + - "3000:3000" + depends_on: + - db + restart: always groot-users-service: build: groot-users-service @@ -34,3 +79,12 @@ services: - "8001:8001" depends_on: - db + restart: always + + groot-voz: + build: groot-voz + ports: + - "5652:5652" + depends_on: + - db + restart: always From 22fadff726ac3503de6c0b78b6d3f109e13ac565 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Wed, 29 Mar 2017 12:23:09 -0500 Subject: [PATCH 03/14] Dockerized groot-api-gateway --- docker-compose.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 41f3ad6..43e4876 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,17 +10,25 @@ services: - 3306 restart: always + groot: + build: groot + ports: + - "8000:8000" + restart: always + groot-credits-service: build: groot-credits-service ports: - "8765:8765" depends_on: - db + - groot restart: always groot-desktop-frontend: build: groot-desktop-frontend depends_on: + - groot - groot-events-service - groot-users-service - groot-groups-service @@ -33,12 +41,16 @@ services: build: groot-events-service ports: - "8002:8002" + depends_on: + - groot restart: always groot-groups-service: build: groot-events-service ports: - "9001:9001" + depends_on: + - groot restart: always groot-meme-service: @@ -47,6 +59,7 @@ services: - "42069:42069" depends_on: - db + - groot restart: always groot-merch-service: @@ -55,6 +68,7 @@ services: - "6969:6969" depends_on: - db + - groot restart: always groot-quotes-service: @@ -63,6 +77,7 @@ services: - "9494:9494" depends_on: - db + - groot restart: always groot-recruiters-service: @@ -71,6 +86,7 @@ services: - "3000:3000" depends_on: - db + - groot restart: always groot-users-service: @@ -79,6 +95,7 @@ services: - "8001:8001" depends_on: - db + - groot restart: always groot-voz: @@ -87,4 +104,5 @@ services: - "5652:5652" depends_on: - db + - groot restart: always From ac2c7e12ff70fb7d792159f93f50ec1ae00bbc47 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Fri, 31 Mar 2017 09:08:56 -0500 Subject: [PATCH 04/14] MySQL config updates --- database_setup.sql | 5 ++++- docker-compose.yml | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/database_setup.sql b/database_setup.sql index 001df4d..f955604 100644 --- a/database_setup.sql +++ b/database_setup.sql @@ -1,6 +1,9 @@ CREATE DATABASE IF NOT EXISTS groot_caffeine_service_dev; CREATE DATABASE IF NOT EXISTS groot_credits_service; CREATE DATABASE IF NOT EXISTS groot_meme_service; +CREATE DATABASE IF NOT EXISTS groot_merch_service_dev; CREATE DATABASE IF NOT EXISTS groot_quote_service_dev; CREATE DATABASE IF NOT EXISTS groot_recruiter_service_dev; -CREATE DATABASE IF NOT EXISTS groot_user_service_dev; \ No newline at end of file +CREATE DATABASE IF NOT EXISTS groot_user_service_dev; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; +FLUSH PRIVILEGES; \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 43e4876..24ca073 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,8 +6,9 @@ services: - MYSQL_ROOT_PASSWORD=root volumes: - ./database_setup.sql:/docker-entrypoint-initdb.d/schema.sql:ro + - db_data:/var/lib/mysql ports: - - 3306 + - "3306:3306" restart: always groot: @@ -106,3 +107,6 @@ services: - db - groot restart: always + +volumes: + db_data: From 6d3e097a3e1025103e7d7b2a387fd5846da762d6 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Sun, 2 Apr 2017 08:05:33 -0500 Subject: [PATCH 05/14] Add gigs service --- database_setup.sql | 1 + docker-compose.yml | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/database_setup.sql b/database_setup.sql index f955604..e51ff7d 100644 --- a/database_setup.sql +++ b/database_setup.sql @@ -1,5 +1,6 @@ CREATE DATABASE IF NOT EXISTS groot_caffeine_service_dev; CREATE DATABASE IF NOT EXISTS groot_credits_service; +CREATE DATABASE IF NOT EXISTS groot_gig_service; CREATE DATABASE IF NOT EXISTS groot_meme_service; CREATE DATABASE IF NOT EXISTS groot_merch_service_dev; CREATE DATABASE IF NOT EXISTS groot_quote_service_dev; diff --git a/docker-compose.yml b/docker-compose.yml index 24ca073..9149cd8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,6 +46,15 @@ services: - groot restart: always + groot-gigs-service: + build: groot-gigs-service + ports: + - "8964:8964" + depends_on: + - db + - groot + restart: always + groot-groups-service: build: groot-events-service ports: From 6bdc9e81875b232878bd04ba215758d35cdc9fb8 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Sun, 2 Apr 2017 21:21:00 -0500 Subject: [PATCH 06/14] Fix gigs db name --- database_setup.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database_setup.sql b/database_setup.sql index e51ff7d..7ba41e9 100644 --- a/database_setup.sql +++ b/database_setup.sql @@ -1,6 +1,6 @@ CREATE DATABASE IF NOT EXISTS groot_caffeine_service_dev; CREATE DATABASE IF NOT EXISTS groot_credits_service; -CREATE DATABASE IF NOT EXISTS groot_gig_service; +CREATE DATABASE IF NOT EXISTS groot_gigs_service; CREATE DATABASE IF NOT EXISTS groot_meme_service; CREATE DATABASE IF NOT EXISTS groot_merch_service_dev; CREATE DATABASE IF NOT EXISTS groot_quote_service_dev; From 4ffbf8fbc0cc2d03a81567d02f73440cc13c16f4 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Mon, 3 Apr 2017 08:40:07 -0500 Subject: [PATCH 07/14] Add client key database for groot-api-gateway --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 9149cd8..b1b26b0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,8 @@ services: build: groot ports: - "8000:8000" + volumes: + - clients_db:/var/groot/ restart: always groot-credits-service: @@ -119,3 +121,4 @@ services: volumes: db_data: + clients_db: From 7cf9af51bb4f2ad969f24034272c430386edf93d Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Mon, 3 Apr 2017 09:07:35 -0500 Subject: [PATCH 08/14] Fix group service build --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b1b26b0..fa33312 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,7 +58,7 @@ services: restart: always groot-groups-service: - build: groot-events-service + build: groot-groups-service ports: - "9001:9001" depends_on: From fbed5303069aa5bb4ad449ef97569f385b3465ff Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Mon, 3 Apr 2017 16:48:50 -0500 Subject: [PATCH 09/14] Docker-compose / volume fixes for arborized groot --- docker-compose.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index fa33312..ec78edd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,12 +11,13 @@ services: - "3306:3306" restart: always - groot: - build: groot + groot-api-gateway: + build: groot-api-gateway ports: - "8000:8000" volumes: - - clients_db:/var/groot/ + - groot_api_gateway_volume:/var/groot/ + restart: always groot-credits-service: @@ -32,10 +33,6 @@ services: build: groot-desktop-frontend depends_on: - groot - - groot-events-service - - groot-users-service - - groot-groups-service - - groot-quotes-service ports: - "5000:5000" restart: always @@ -121,4 +118,4 @@ services: volumes: db_data: - clients_db: + groot_api_gateway_volume: From d12e14bb0d0815893d874bb6573c4b6c30873f42 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Tue, 4 Apr 2017 12:15:22 -0500 Subject: [PATCH 10/14] Fix references to groot --- docker-compose.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ec78edd..29a8efc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,13 +26,13 @@ services: - "8765:8765" depends_on: - db - - groot + - groot-api-gateway restart: always groot-desktop-frontend: build: groot-desktop-frontend depends_on: - - groot + - groot-api-gateway ports: - "5000:5000" restart: always @@ -42,7 +42,7 @@ services: ports: - "8002:8002" depends_on: - - groot + - groot-api-gateway restart: always groot-gigs-service: @@ -51,7 +51,7 @@ services: - "8964:8964" depends_on: - db - - groot + - groot-api-gateway restart: always groot-groups-service: @@ -59,7 +59,7 @@ services: ports: - "9001:9001" depends_on: - - groot + - groot-api-gateway restart: always groot-meme-service: @@ -68,7 +68,7 @@ services: - "42069:42069" depends_on: - db - - groot + - groot-api-gateway restart: always groot-merch-service: @@ -77,7 +77,7 @@ services: - "6969:6969" depends_on: - db - - groot + - groot-api-gateway restart: always groot-quotes-service: @@ -86,7 +86,7 @@ services: - "9494:9494" depends_on: - db - - groot + - groot-api-gateway restart: always groot-recruiters-service: @@ -95,7 +95,7 @@ services: - "3000:3000" depends_on: - db - - groot + - groot-api-gateway restart: always groot-users-service: @@ -104,7 +104,7 @@ services: - "8001:8001" depends_on: - db - - groot + - groot-api-gateway restart: always groot-voz: @@ -113,7 +113,7 @@ services: - "5652:5652" depends_on: - db - - groot + - groot-api-gateway restart: always volumes: From 5f7057d0136dc20d6911e1c81b37b1610962411b Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Tue, 4 Apr 2017 12:32:11 -0500 Subject: [PATCH 11/14] Fix volume path --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 29a8efc..69f3e5b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: ports: - "8000:8000" volumes: - - groot_api_gateway_volume:/var/groot/ + - groot_api_gateway_volume:/var/groot-api-gateway/ restart: always From 5550bcb93fb4a46f6978a64151cfd4d6dcab6729 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Fri, 7 Apr 2017 17:47:49 -0500 Subject: [PATCH 12/14] Update docker_settings_init.sh for dockerized services --- docker_settings_init.sh | 71 +++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 20 deletions(-) diff --git a/docker_settings_init.sh b/docker_settings_init.sh index fd42dae..bcc822b 100755 --- a/docker_settings_init.sh +++ b/docker_settings_init.sh @@ -9,7 +9,7 @@ credits="MYSQL = { 'dbname': 'groot_credits_service' } -GROOT_SERVICES_URL = 'http://localhost:8000' +GROOT_SERVICES_URL = 'http://groot-api-gateway:8000' GROOT_ACCESS_TOKEN = '' STRIPE_SECRET_KEY = ''" echo "$credits" > groot-credits-service/settings.py @@ -24,56 +24,72 @@ memes="MYSQL = { } GROOT_ACCESS_TOKEN = '' -GROOT_SERVICES_URL = 'http://localhost:8000'" +GROOT_SERVICES_URL = 'http://groot-api-gateway:8000'" echo "$memes" > groot-meme-service/settings.py ##### SETUP MERCH ##### echo "* Setting up MERCH" merch_secrets="groot: - access_key: ''" -merch_database="development: + access_key: '' + host: 'http://groot-api-gateway:8000' + +merch_pi: + access_key: 'INSERT_TOKEN_HERE' + ip_address: 'INSERT_IPADDRESS' + +development: user: root password: root hostname: db - name: groot_caffeine_service_dev" + name: groot_merch_service_dev" echo "$merch_secrets" > groot-merch-service/config/secrets.yaml -echo "$merch_database" > groot-merch-service/config/database.yaml ##### SETUP QUOTES ##### echo "* Setting up QUOTES" quotes_secrets="groot: - access_key: ''" -quotes_database="development: + access_key: 'GROOT_ACCESS_KEY' + host: 'http://groot-api-gateway:8000' + +development: user: root password: root hostname: db name: groot_quote_service_dev" + echo "$quotes_secrets" > groot-quotes-service/config/secrets.yaml -echo "$quotes_database" > groot-quotes-service/config/database.yaml ##### SETUP RECRUITERS ##### echo "* Setting up RECRUITERS" -recruiters_secrets="groot: - access_key: ''" -recruiters_database="development: +recruiters_secrets="aws: + access_key_id: '' + secret_access_key: '' + +groot: + access_key: 'INSERT_TOKEN_HERE' + host: 'http://groot-api-gateway:8000' + +jwt: + secret: 'SECRET_JWT_TOKEN' + +development: user: root password: root hostname: db name: groot_recruiter_service_dev" echo "$recruiters_secrets" > groot-recruiters-service/config/secrets.yaml -echo "$recruiters_database" > groot-recruiters-service/config/database.yaml ##### SETUP USERS ##### echo "* Setting up USERS" users_secrets="groot: - access_key: ''" -users_database="development: + access_key: 'GROOT_ACCESS_KEY' + host: 'http://groot-api-gateway:8000' + +development: user: root password: root hostname: db name: groot_user_service_dev" echo "$users_secrets" > groot-users-service/config/secrets.yaml -echo "$users_database" > groot-users-service/config/database.yaml ##### SETUP GROOT ##### echo "* Setting up GROOT" @@ -81,10 +97,25 @@ groot_config="package config const RecruiterToken string = \"\" const AuthPrefix = \"Basic \" -const AuthURL string = \"http://localhost:8008\" +const AuthURL string = \"http://groot-auth-stub-service:8008\" const AuthToken string = \"\" -const AccessLogLocation string = \"log/access.log\" -const ClientRegistryLocation string = \"clients.db\" -const AccessControlPolicy string = \"*\"" +//Service hosts +const CreditsURL = \"http://groot-credits-service:8765\" +const EventsURL = \"http://groot-events-service:8002\" +const GigsURL = \"http://groot-gigs-service:8964\" +const GroupsURL = \"http://groot-groups-service:9001\" +const HardwareURL = \"http://groot:4523/api/v1.0\" +const MemesURL = \"http://groot-meme-service:42069\" +const MerchURL = \"http://groot-merch-service:6969\" +const QuotesURL = \"http://groot-quotes-service:9494\" +const RecruiterURL = \"http://groot-recruiters-service:4567\" +const UsersURL = \"http://groot-users-service:8001\" + +//Arbor configurations +func LoadArborConfig() { + security.AccessLogLocation = \"/var/groot-api-gateway/access.log\" + security.ClientRegistryLocation = \"/var/groot-api-gateway/clients.db\" + proxy.AccessControlPolicy = \"*\" +}" echo "$groot_config" > groot/config/config.go From 2a6443f5daf4c80be43972fa5d4db5217fc42f67 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Fri, 7 Apr 2017 17:51:36 -0500 Subject: [PATCH 13/14] Docker command notes --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index a075bca..9779b64 100644 --- a/README.md +++ b/README.md @@ -213,6 +213,17 @@ Questions on how to add your app to Groot or use the Groot API: ``` 9. Wait for the image to build and startup. If it works, you'll be able to visit `https://0.0.0.0:5000` in a browser and see the deployed site. The Groot API will be available on port 8000. +Useful Notes: + +* If you want to just rebuild one service (i.e. for dev work), you can keep the `docker-compose` command running, and run this command in a separate terminal window to rebuild the service you're working on: + ``` + docker-compose up -d --build SERVICE + ``` +* For dev work you'll probably want to run in unauthenticated mode. To do this, change the `CMD` line in `groot-api-gateway/Dockerfile` to: + ``` + CMD ["./build/groot-api-gateway", "-u"] + ``` + ## License This project is licensed under the University of Illinois/NCSA Open Source License. For a full copy of this license take a look at the LICENSE file. From 3406ab2872df669ca9fcbb86e2c9477e51ba0bb9 Mon Sep 17 00:00:00 2001 From: Benjamin Congdon Date: Sat, 8 Apr 2017 07:58:08 -0500 Subject: [PATCH 14/14] Add gigs settings to setup script --- docker_settings_init.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docker_settings_init.sh b/docker_settings_init.sh index bcc822b..292ec8a 100755 --- a/docker_settings_init.sh +++ b/docker_settings_init.sh @@ -14,6 +14,19 @@ GROOT_ACCESS_TOKEN = '' STRIPE_SECRET_KEY = ''" echo "$credits" > groot-credits-service/settings.py +##### SETUP GIGS ##### +echo "* Setting up GIGS" +credits="MYSQL = { + 'user': 'root', + 'password': 'root', + 'host': 'db', + 'dbname': 'groot_gigs_service' +} + +GROOT_SERVICES_URL = 'http://groot-api-gateway:8000' +GROOT_ACCESS_TOKEN = '' +echo "$credits" > groot-gigs-service/settings.py + ##### SETUP MEMES ##### echo "* Setting up MEMES" memes="MYSQL = {