More docker-compose cleaning

This commit is contained in:
Otto Ahoniemi
2021-06-10 10:24:10 +03:00
parent 485722c3cd
commit 28b77fe0ce
3 changed files with 155 additions and 190 deletions
+10 -24
View File
@@ -1,42 +1,28 @@
version: '3.8'
services:
analytics:
environment:
DB_URL: postgres://postgres@analytics_db:5432/analytics_db_real
backend:
environment:
DB_URL: postgres://postgres@db:5432/tkt_oodi_real
DB_URL_KONE: postgres://postgres@db_kone:5432/db_kone_real
SIS_DB_URL: postgres://postgres@db_sis:5432/db_sis_real
userservice:
environment:
DB_URL: postgres://postgres@user_db:5432/user_db_real
analytics:
environment:
DB_URL: postgres://postgres@analytics_db:5432/analytics_db_real
# updater_writer:
# environment:
# DB_URL: postgres://postgres@db:5432/tkt_oodi_real
# updater_api:
# environment:
# - OODI_ADDR=https://oodikone.cs.helsinki.fi/oodi
# - TOKEN
# scheduler_mongo:
# volumes:
# - mongodata-real:/data/db
redis:
volumes:
- redis-data-real:/data
sis-updater-worker:
environment:
DB_URL: postgres://postgres@db_sis:5432/db_sis_real
userservice:
environment:
DB_URL: postgres://postgres@user_db:5432/user_db_real
redis:
volumes:
- redis-data-real:/data
volumes:
redis-data-real:
mongodata-real:
+126 -148
View File
@@ -1,41 +1,52 @@
# === Default docker-compose for oodikone project ===
# Defaults to anonymous data and development env variables when developing oodikone
# locally.
services:
# === Oodikone services ===
frontend:
build:
args:
NODE_ENV: 'development'
TAG: 'development'
context: services/oodikone2-frontend
command: ['npm', 'run', 'docker']
container_name: frontend
adminer:
container_name: adminer
environment:
ADMINER_URL: http://localhost:5050/?pgsql=db&username=postgres
ANALYTICS_ADMINER_URL: http://localhost:5050/?pgsql=analytics_db&username=postgres
BACKEND_ADDR: backend
KONE_ADMINER_URL: http://localhost:5050/?pgsql=db_kone&username=postgres
SIS_ADMINER_URL: http://localhost:5050/?pgsql=db_sis&username=postgres
USER_ADMINER_URL: http://localhost:5050/?pgsql=user_db&username=postgres
ADMINER_DESIGN: pepa-linha
image: adminer:4.8.0
ports:
- "8081:8081"
- "7777:7777"
- "5050:8080"
restart: unless-stopped
volumes:
- frontend-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-frontend/:/usr/src/app
- ./adminer-plugins:/var/www/html/plugins-enabled
analytics:
build:
args:
NODE_ENV: development
context: services/oodikone2-analytics
command: "npm run dev"
container_name: analytics
depends_on:
- analytics_db
environment:
DB_URL: postgres://postgres@analytics_db:5432/analytics_db
TEST_DB: postgres://postgres@analytics_db:5432/analytics_db_test
ports:
- "4568:4568"
restart: unless-stopped
volumes:
- analytics-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-analytics/:/usr/src/app
analytics_db:
container_name: oodi_analytics_db
environment:
POSTGRES_USER: postgres
POSTGRES_MULTIPLE_DATABASES: analytics_db,analytics_db_real
image: postgres:9.6.3
ports:
- "5423:5432"
restart: unless-stopped
volumes:
- analytics_pgdata:/var/lib/postgresql/data
- ./scripts/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
backend:
build:
args:
NODE_ENV: 'development'
TAG: 'development'
NODE_ENV: development
TAG: development
context: services/backend
dockerfile: oodikone2-backend/Dockerfile
command: ['npm', 'run', 'dev']
command: "npm run dev"
container_name: backend
depends_on:
- db
@@ -65,72 +76,20 @@ services:
- ./services/backend/shared/models:/usr/src/app/src/models
- ./services/backend/shared/migrations:/usr/src/app/src/database/migrations
- ./services/backend/shared/migrations_kone:/usr/src/app/src/database/migrations_kone
userservice:
build:
args:
NODE_ENV: 'development'
context: services/oodikone2-userservice
command: ['npm', 'run', 'dev']
container_name: userservice
depends_on:
- user_db
db:
container_name: oodi_db
environment:
DB_URL: postgres://postgres@user_db:5432/user_db
SECRET: Luukk4inenApprov3dVitunMinttuSalainenAvain666NurmivaaraPJ2019
TEST_DB: postgres://postgres@user_db:5432/user_db_test
TOKEN_SECRET: IWannaBeTheVeryBest
POSTGRES_USER: postgres
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_MULTIPLE_DATABASES: tkt_oodi,tkt_oodi_test,tkt_oodi_real
image: postgres:10-alpine
ports:
- "4567:4567"
- "5421:5432"
restart: unless-stopped
shm_size: 2gb
volumes:
- userservice-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-userservice/:/usr/src/app
user_db:
container_name: oodi_user_db
environment:
- POSTGRES_USER=postgres
- POSTGRES_MULTIPLE_DATABASES=user_db,user_db_real
image: postgres:9.6.3
ports:
- "5422:5432"
restart: unless-stopped
volumes:
- user_pgdata:/var/lib/postgresql/data
analytics:
build:
args:
NODE_ENV: 'development'
context: services/oodikone2-analytics
command: ['npm', 'run', 'dev']
container_name: analytics
depends_on:
- analytics_db
environment:
- DB_URL=postgres://postgres@analytics_db:5432/analytics_db
- TEST_DB=postgres://postgres@analytics_db:5432/analytics_db_test
ports:
- "4568:4568"
restart: unless-stopped
volumes:
- analytics-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-analytics/:/usr/src/app
analytics_db:
container_name: oodi_analytics_db
environment:
- POSTGRES_USER=postgres
- POSTGRES_MULTIPLE_DATABASES=analytics_db,analytics_db_real
image: postgres:9.6.3
ports:
- "5423:5432"
restart: unless-stopped
volumes:
- analytics_pgdata:/var/lib/postgresql/data
- pgdata:/var/lib/postgresql/data
- ./scripts/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
db_kone:
container_name: db_kone
environment:
@@ -142,30 +101,67 @@ services:
volumes:
- pgdata_kone:/var/lib/postgresql/data
- ./scripts/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
db:
container_name: oodi_db
db_sis:
container_name: db_sis
environment:
- POSTGRES_USER=postgres
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_MULTIPLE_DATABASES=tkt_oodi,tkt_oodi_test,tkt_oodi_real
image: postgres:10-alpine
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_MULTIPLE_DATABASES: db_sis,db_sis_real
POSTGRES_USER: postgres
image: postgres:13.2
ports:
- "5421:5432"
- "5426:5432"
restart: unless-stopped
shm_size: "2gb"
shm_size: 2gb
volumes:
- pgdata:/var/lib/postgresql/data
- pgdata_sis:/var/lib/postgresql/data
- ./scripts/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
# === Updater services ===
frontend:
build:
args:
NODE_ENV: development
TAG: development
context: services/oodikone2-frontend
command: "npm run docker"
container_name: frontend
environment:
ADMINER_URL: http://localhost:5050/?pgsql=db&username=postgres
ANALYTICS_ADMINER_URL: http://localhost:5050/?pgsql=analytics_db&username=postgres
BACKEND_ADDR: backend
KONE_ADMINER_URL: http://localhost:5050/?pgsql=db_kone&username=postgres
SIS_ADMINER_URL: http://localhost:5050/?pgsql=db_sis&username=postgres
USER_ADMINER_URL: http://localhost:5050/?pgsql=user_db&username=postgres
ports:
- "8081:8081"
- "7777:7777"
restart: unless-stopped
volumes:
- frontend-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-frontend/:/usr/src/app
redis:
command: "redis-server --appendonly yes"
container_name: redis
image: redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
sis-importer-db:
container_name: sis-importer-db
environment:
POSTGRES_HOST_AUTH_METHOD: trust
image: postgres:13.1
volumes:
- sis-importer-pgdata:/var/lib/postgresql/data
sis-updater-nats:
command: "-cid sis-updater-nats -m 8222 -p 4222 --max_age 2h --hb_fail_count 2 --hb_timeout 10s --hb_interval 10s --auth dev --file_slice_max_bytes 0 --file_slice_max_age 60s --max_msgs 0 -store file -dir datastore"
container_name: sis-updater-nats
image: nats-streaming:0.16.2
sis-updater-scheduler:
build:
args:
NODE_ENV: 'development'
NODE_ENV: development
context: updater/sis-updater-scheduler
command: ['npm', 'run', 'dev']
command: "npm run dev"
container_name: sis-updater-scheduler
depends_on:
- redis
@@ -185,13 +181,12 @@ services:
volumes:
- sis-updater-scheduler-nodemod:/usr/src/app/node_modules
- ./updater/sis-updater-scheduler/:/usr/src/app
sis-updater-worker:
build:
args:
NODE_ENV: 'development'
NODE_ENV: development
context: updater/sis-updater-worker
command: ['npm', 'run', 'dev']
command: "npm run dev"
depends_on:
- redis
- sis-updater-nats
@@ -208,57 +203,40 @@ services:
volumes:
- sis-updater-worker-nodemod:/usr/src/app/node_modules
- ./updater/sis-updater-worker/:/usr/src/app
sis-updater-nats:
command: -cid sis-updater-nats -m 8222 -p 4222 --max_age 2h --hb_fail_count 2 --hb_timeout 10s --hb_interval 10s --auth dev --file_slice_max_bytes 0 --file_slice_max_age 60s --max_msgs 0 -store file -dir datastore
container_name: sis-updater-nats
image: nats-streaming:0.16.2
sis-importer-db:
container_name: sis-importer-db
user_db:
container_name: oodi_user_db
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
image: postgres:13.1
volumes:
- sis-importer-pgdata:/var/lib/postgresql/data
# Services for both
adminer:
container_name: adminer
environment:
- ADMINER_DESIGN=pepa-linha
image: adminer:4.8.0
POSTGRES_USER: postgres
POSTGRES_MULTIPLE_DATABASES: user_db,user_db_real
image: postgres:9.6.3
ports:
- "5050:8080"
- "5422:5432"
restart: unless-stopped
volumes:
- ./adminer-plugins:/var/www/html/plugins-enabled
redis:
container_name: redis
command: ["redis-server", "--appendonly", "yes"]
image: redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
db_sis:
container_name: db_sis
- user_pgdata:/var/lib/postgresql/data
userservice:
build:
args:
NODE_ENV: development
context: services/oodikone2-userservice
command: "npm run dev"
container_name: userservice
depends_on:
- user_db
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_MULTIPLE_DATABASES=db_sis,db_sis_real
- POSTGRES_USER=postgres
image: postgres:13.2
DB_URL: postgres://postgres@user_db:5432/user_db
SECRET: Luukk4inenApprov3dVitunMinttuSalainenAvain666NurmivaaraPJ2019
TEST_DB: postgres://postgres@user_db:5432/user_db_test"
TOKEN_SECRET: IWannaBeTheVeryBest
ports:
- "5426:5432"
- "4567:4567"
restart: unless-stopped
shm_size: "2gb"
volumes:
- pgdata_sis:/var/lib/postgresql/data
- ./scripts/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro
- userservice-nodemod:/usr/src/app/node_modules
- ./services/oodikone2-userservice/:/usr/src/app
volumes:
# TODO: unify naming of pgdata, just like nodemod
analytics-nodemod:
analytics_pgdata:
backend-nodemod:
+19 -18
View File
@@ -14,7 +14,7 @@ Usage: $(basename "${BASH_SOURCE[0]}") option version command --flag
Option: oodikone/updater
Version: anon/real/ci
Command: will be passed to docker-compose
Command: will be passed to docker-compose. Can't be empty
Following flags can be used:
-v or --verbose: for verbose mode (prints stack trace)
@@ -52,30 +52,28 @@ parse_params() {
esac
shift
done
setup_colors
# Set args to global variables
# Parse arguments. If arguments are not correct, print usage and exit with error.
args=("$@")
[[ ${#args[@]} -lt 3 ]] && usage && die
option=${args[0]}
version=${args[1]}
# check required arguments
[[ ${#args[@]} -lt 2 ]] && usage && die
[[ "$option" != "oodikone" && "$option" != "updater" ]] && usage && die
[[ "$version" != "anon" && "$version" != "real" && "$version" != "ci" ]] && usage && die
# Parse docker-compose command that will be passed
if [[ ${#args[@]} -eq 2 ]]; then
compose_command=""
else
compose_command=${args[*]:2}
fi
# Parse all additional arguments that will be passed to docker-compose.
compose_command=${args[*]:2}
return 0
}
# Set which services to launch based on option
parse_services() {
[[ "$option" == "oodikone" ]] && services="db db_sis db_kone analytics analytics_db backend frontend user_db userservice adminer"
[[ "$option" == "updater" ]] && services="db-sis sis-updater-nats sis-updater-scheduler sis-updater-worker redis adminer"
[[ "$option" == "oodikone" ]] && services="db db_sis db_kone analytics analytics_db \
backend frontend user_db userservice adminer"
[[ "$option" == "updater" ]] && services="db_sis sis-updater-nats \
sis-updater-scheduler sis-updater-worker redis adminer sis-importer-db"
return 0
}
@@ -83,26 +81,29 @@ parse_services() {
parse_env() {
[[ "$version" == "anon" ]] && env=""
[[ "$version" == "real" ]] && env="-f docker-compose.yml -f docker-compose.real.yml"
[[ "$version" == "ci" ]] && env="-f docker-compose.yml -f docker-compose.ci.yml"
[[ "$version" == "ci" ]] && env="-f docker-compose.ci.yml"
return 0
}
# Run helper functions
parse_params "$@"
setup_colors
parse_services
parse_env
## All things are not yet implemented, fail with error
[[ "$version" == "anon" ]] && die "${RED}Anon option not yet implemented${NOFORMAT}"
[[ "$version" == "ci" ]] && die "${RED}CI option not yet implemented${NOFORMAT}"
# SCRIPT LOGIC
# Create command that will be run. Empty command (e.g. just ./run oodikone real) and
# "down" command will be handled differently, otherwise just pass all commands
echo "comp command $compose_command"
if [[ "$compose_command" == "" ]]; then
final_command="docker-compose ${env} ${services}"
final_command="docker-compose ${env}"
elif [[ "$compose_command" == *"down"* ]]; then
final_command="docker-compose ${compose_command}"
else
final_command="docker-compose ${env} ${compose_command} ${services}"
fi
msg "${BLUE}Running: ${final_command}${NOFORMAT}"
eval "$final_command"