Use multi-service entrypoint
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Luke Murphy 2020-11-08 17:41:18 +01:00
parent ae76ce39ce
commit 1ae02b81c4
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 29 additions and 30 deletions

View File

@ -36,8 +36,9 @@ services:
- FOODCOOP_STREET - FOODCOOP_STREET
- FOODCOOP_TIME_ZONE - FOODCOOP_TIME_ZONE
- FOODCOOP_ZIP_CODE - FOODCOOP_ZIP_CODE
- MYSQL_HOST=db - FOODSOFT_SERVICE=app
- MYSQL_DB=foodsoft - MYSQL_DB=foodsoft
- MYSQL_HOST=db
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- MYSQL_USER=foodsoft - MYSQL_USER=foodsoft
- QUEUE=foodsoft_notifier - QUEUE=foodsoft_notifier
@ -67,8 +68,8 @@ services:
cron: cron:
image: "foodcoops/foodsoft:4.7.0" image: "foodcoops/foodsoft:4.7.0"
command: ./proc-start cron
environment: environment:
- FOODSOFT_SERVICE=cron
- MYSQL_DB - MYSQL_DB
- MYSQL_HOST - MYSQL_HOST
- MYSQL_PORT - MYSQL_PORT
@ -76,6 +77,10 @@ services:
configs: configs:
- source: db_config - source: db_config
target: /usr/src/app/config/database.yml target: /usr/src/app/config/database.yml
- source: entrypoint
target: /usr/src/app/docker-entrypoint.sh
mode: 0555
entrypoint: /usr/src/app/docker-entrypoint.sh
secrets: secrets:
- db_password - db_password
networks: networks:
@ -83,8 +88,8 @@ services:
worker: worker:
image: "foodcoops/foodsoft:4.7.0" image: "foodcoops/foodsoft:4.7.0"
command: ./proc-start worker
environment: environment:
- FOODSOFT_SERVICE=worker
- MYSQL_DB - MYSQL_DB
- MYSQL_HOST - MYSQL_HOST
- MYSQL_PORT - MYSQL_PORT
@ -92,6 +97,10 @@ services:
configs: configs:
- source: db_config - source: db_config
target: /usr/src/app/config/database.yml target: /usr/src/app/config/database.yml
- source: entrypoint
target: /usr/src/app/docker-entrypoint.sh
mode: 0555
entrypoint: /usr/src/app/docker-entrypoint.sh
secrets: secrets:
- db_password - db_password
networks: networks:
@ -99,19 +108,23 @@ services:
smtp: smtp:
image: "foodcoops/foodsoft:4.7.0" image: "foodcoops/foodsoft:4.7.0"
command: ./proc-start mail
configs: configs:
- source: db_config - source: db_config
target: /usr/src/app/config/database.yml target: /usr/src/app/config/database.yml
- source: entrypoint
target: /usr/src/app/docker-entrypoint.sh
mode: 0555
entrypoint: /usr/src/app/docker-entrypoint.sh
secrets: secrets:
- db_password - db_password
environment: environment:
- SMTP_SERVER_PORT - FOODSOFT_SERVICE=worker
- SMTP_SERVER_HOST
- MYSQL_DB - MYSQL_DB
- MYSQL_HOST - MYSQL_HOST
- MYSQL_PORT - MYSQL_PORT
- MYSQL_USER - MYSQL_USER
- SMTP_SERVER_HOST
- SMTP_SERVER_PORT
networks: networks:
- internal - internal

View File

@ -23,31 +23,17 @@ file_env() {
unset "$fileVar" unset "$fileVar"
} }
load_vars() { file_env "SECRET_KEY_BASE"
file_env "SECRET_KEY_BASE" file_env "SMTP_PASSWORD"
file_env "SMTP_PASSWORD"
}
re_use() { if [ "$FOODSOFT_SERVICE" == "app" ]; then
if [ -f tmp/pids/server.pid ]; then
rm tmp/pids/server.pid
fi
}
db_setup() {
bundle exec rake db:setup bundle exec rake db:setup
}
db_migrate() {
bundle exec rake db:migrate bundle exec rake db:migrate
}
run_web(){
./proc-start web ./proc-start web
} elif [ "$FOODSOFT_SERVICE" == "cron" ]; then
./proc-start cron
re_use elif [ "$FOODSOFT_SERVICE" == "worker" ]; then
load_vars ./proc-start worker
db_setup elif [ "$FOODSOFT_SERVICE" == "mail" ]; then
db_migrate ./proc-start mail
run_web fi