From 42bdf49ba5728214ab9ff28f0a685f59dd38aa73 Mon Sep 17 00:00:00 2001 From: Philipp Rothmann Date: Thu, 7 Apr 2022 16:17:10 +0200 Subject: [PATCH] long live yml templates --- compose.yml | 206 ++++++++++++++++------------------------------------ 1 file changed, 62 insertions(+), 144 deletions(-) diff --git a/compose.yml b/compose.yml index 94fa713..f50404e 100644 --- a/compose.yml +++ b/compose.yml @@ -1,60 +1,68 @@ version: "3.8" + +x-env: &env + CERTBOT_DISABLED: 1 + DOMAIN: + EMAIL_ERROR: + EMAIL_REPLY_DOMAIN: + EMAIL_SENDER: + FOODCOOP_CITY: + FOODCOOP_COUNTRY: + FOODCOOP_EMAIL: + FOODCOOP_FOOTER: + FOODCOOP_HELP_URL: + FOODCOOP_HOMEPAGE: + FOODCOOP_MULTI_INSTALL: + FOODCOOP_NAME: + FOODCOOP_PHONE: + FOODCOOP_STREET: + FOODCOOP_TIME_ZONE: + FOODCOOP_ZIP_CODE: + FOODCOOP_USE_NICK: + FOODCOOP_LANGUAGE: + LOG_LEVEL: + MYSQL_DB: + MYSQL_HOST: + MYSQL_PORT: + MYSQL_USER: + QUEUE: foodsoft_notifier + REDIS_URL: redis://cache:6379 + SECRET_KEY_BASE_FILE: /run/secrets/secret_key_base + SMTP_ADDRESS: + SMTP_AUTHENTICATION: + SMTP_DOMAIN: + SMTP_ENABLE_STARTTLS_AUTO: + SMTP_PASSWORD_FILE: /run/secrets/smtp_password + SMTP_PORT: + SMTP_USER_NAME: + +x-configs: &configs + - source: app_config + target: /usr/src/app/config/app_config.yml + - source: db_config + target: /usr/src/app/config/database.yml + - source: production_env + target: /usr/src/app/config/environments/production.rb + - source: entrypoint + target: /usr/src/app/docker-entrypoint.sh + mode: 0555 + +x-secrets: &secrets + - db_password + - secret_key_base + - smtp_password + services: app: image: foodcoops/foodsoft:4.7.1 networks: - internal - proxy - secrets: - - db_password - - secret_key_base - - smtp_password - configs: - - source: app_config - target: /usr/src/app/config/app_config.yml - - source: db_config - target: /usr/src/app/config/database.yml - - source: production_env - target: /usr/src/app/config/environments/production.rb - - source: entrypoint - target: /usr/src/app/docker-entrypoint.sh - mode: 0555 + secrets: *secrets + configs: *configs entrypoint: /usr/src/app/docker-entrypoint.sh environment: - CERTBOT_DISABLED: 1 - DOMAIN: - EMAIL_ERROR: - EMAIL_REPLY_DOMAIN: - EMAIL_SENDER: - FOODCOOP_CITY: - FOODCOOP_COUNTRY: - FOODCOOP_EMAIL: - FOODCOOP_FOOTER: - FOODCOOP_HELP_URL: - FOODCOOP_HOMEPAGE: - FOODCOOP_MULTI_INSTALL: - FOODCOOP_NAME: - FOODCOOP_PHONE: - FOODCOOP_STREET: - FOODCOOP_TIME_ZONE: - FOODCOOP_ZIP_CODE: - FOODCOOP_USE_NICK: - FOODCOOP_LANGUAGE: - LOG_LEVEL: - MYSQL_DB: - MYSQL_HOST: - MYSQL_PORT: - MYSQL_USER: - QUEUE: foodsoft_notifier - REDIS_URL: redis://cache:6379 - SECRET_KEY_BASE_FILE: /run/secrets/secret_key_base - SMTP_ADDRESS: - SMTP_AUTHENTICATION: - SMTP_DOMAIN: - SMTP_ENABLE_STARTTLS_AUTO: - SMTP_PASSWORD_FILE: /run/secrets/smtp_password - SMTP_PORT: - SMTP_USER_NAME: + <<: *env FOODSOFT_SERVICE: app healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000"] @@ -75,112 +83,22 @@ services: - coop-cloud.${STACK_NAME}.app.version=4.7.1- cron: image: foodcoops/foodsoft:4.7.1 - secrets: - - db_password - - secret_key_base - - smtp_password - configs: - - source: app_config - target: /usr/src/app/config/app_config.yml - - source: db_config - target: /usr/src/app/config/database.yml - - source: production_env - target: /usr/src/app/config/environments/production.rb - - source: entrypoint - target: /usr/src/app/docker-entrypoint.sh - mode: 0555 + secrets: *secrets + configs: *configs entrypoint: /usr/src/app/docker-entrypoint.sh environment: - CERTBOT_DISABLED: 1 - DOMAIN: - EMAIL_ERROR: - EMAIL_REPLY_DOMAIN: - EMAIL_SENDER: - FOODCOOP_CITY: - FOODCOOP_COUNTRY: - FOODCOOP_EMAIL: - FOODCOOP_FOOTER: - FOODCOOP_HELP_URL: - FOODCOOP_HOMEPAGE: - FOODCOOP_MULTI_INSTALL: - FOODCOOP_NAME: - FOODCOOP_PHONE: - FOODCOOP_STREET: - FOODCOOP_TIME_ZONE: - FOODCOOP_ZIP_CODE: - FOODCOOP_USE_NICK: - FOODCOOP_LANGUAGE: - LOG_LEVEL: - MYSQL_DB: - MYSQL_HOST: - MYSQL_PORT: - MYSQL_USER: - QUEUE: foodsoft_notifier - REDIS_URL: redis://cache:6379 - SECRET_KEY_BASE_FILE: /run/secrets/secret_key_base - SMTP_ADDRESS: - SMTP_AUTHENTICATION: - SMTP_DOMAIN: - SMTP_ENABLE_STARTTLS_AUTO: - SMTP_PASSWORD_FILE: /run/secrets/smtp_password - SMTP_PORT: - SMTP_USER_NAME: + <<: *env FOODSOFT_SERVICE: cron networks: - internal worker: image: foodcoops/foodsoft:4.7.1 - secrets: - - db_password - - secret_key_base - - smtp_password - configs: - - source: app_config - target: /usr/src/app/config/app_config.yml - - source: db_config - target: /usr/src/app/config/database.yml - - source: production_env - target: /usr/src/app/config/environments/production.rb - - source: entrypoint - target: /usr/src/app/docker-entrypoint.sh - mode: 0555 + secrets: *secrets + configs: *configs entrypoint: /usr/src/app/docker-entrypoint.sh environment: - CERTBOT_DISABLED: 1 - DOMAIN: - EMAIL_ERROR: - EMAIL_REPLY_DOMAIN: - EMAIL_SENDER: - FOODCOOP_CITY: - FOODCOOP_COUNTRY: - FOODCOOP_EMAIL: - FOODCOOP_FOOTER: - FOODCOOP_HELP_URL: - FOODCOOP_HOMEPAGE: - FOODCOOP_MULTI_INSTALL: - FOODCOOP_NAME: - FOODCOOP_PHONE: - FOODCOOP_STREET: - FOODCOOP_TIME_ZONE: - FOODCOOP_ZIP_CODE: - FOODCOOP_USE_NICK: - FOODCOOP_LANGUAGE: - LOG_LEVEL: - MYSQL_DB: - MYSQL_HOST: - MYSQL_PORT: - MYSQL_USER: - QUEUE: foodsoft_notifier - REDIS_URL: redis://cache:6379 - SECRET_KEY_BASE_FILE: /run/secrets/secret_key_base - SMTP_ADDRESS: - SMTP_AUTHENTICATION: - SMTP_DOMAIN: - SMTP_ENABLE_STARTTLS_AUTO: - SMTP_PASSWORD_FILE: /run/secrets/smtp_password - SMTP_PORT: - SMTP_USER_NAME: + <<: *env FOODSOFT_SERVICE: worker networks: - internal