diff --git a/Dockerfile b/Dockerfile index e5b2d8cd97f2321d519ce0414c9d3ed02b58100e..25dc0ce2064b10e295307252a10a34931d6b246e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,7 @@ RUN echo $FAAS_REGISTRY_VERSION > /faas-docker-version RUN apt-get -q update && \ apt-get install -y memcached apache2 composer git mc wget && \ apt-get install -y php-mysql php-curl php-memcached php-apcu php-cli php-bcmath php-xml libapache2-mod-php && \ + apt-get install -y mariadb-client && \ apt-get -y autoremove && \ apt-get -y clean @@ -21,12 +22,13 @@ RUN git clone https://github.com/bcit-ci/CodeIgniter.git /opt/codeigniter && cd RUN cd /opt/rr3 && bash install.sh && \ cd /opt/rr3/application/config && \ - cp config-default.php config.php && \ cp config_rr-default.php config_rr.php && \ - cp database-default.php database.php && \ cp email-default.php email.php && \ cp memcached-default.php memcached.php +COPY ./conf/etc/registry/config.php /opt/rr3/application/config/config.php +COPY ./conf/etc/registry/database.php /opt/rr3/application/config/database.php + RUN cp /opt/codeigniter/index.php /opt/rr3/index.php && \ sed -i 's#$system_path = \x27system\x27;#$system_path = \x27/opt/codeigniter/system\x27;#' /opt/rr3/index.php && \ cd /opt/rr3/application && \ @@ -34,6 +36,11 @@ RUN cp /opt/codeigniter/index.php /opt/rr3/index.php && \ EXPOSE 80 +RUN mkdir -p /docker-entrypoint-initdb.d /var/log/rr3 +RUN chmod 777 /var/log/rr3 /opt/rr3/application/models/Proxies + +COPY ./conf/sql/01-init-registry.sql.template /docker-entrypoint-initdb.d + COPY ./conf/etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available COPY ./conf/etc/entrypoint /etc/entrypoint diff --git a/Makefile b/Makefile index 3324a438525da16a6fd06942d10e6f0049cc16e8..f865f4d02e2764dfa652713fe938a59a9b7a3360 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,23 @@ -# import config file +# import config files +config_db ?= conf/faas-db.cnf +include $(config_db) +export $(shell sed 's/=.*//' $(config_db)) + +config_smtp ?= conf/faas-smtp.cnf +include $(config_smtp) +export $(shell sed 's/=.*//' $(config_smtp)) + config ?= conf/faas-registry.cnf include $(config) export $(shell sed 's/=.*//' $(config)) +credentials ?= conf/credentials/faas-registry-default.cnf +include $(credentials) +export $(shell sed 's/=.*//' $(credentials)) + + +FAAS_REGISTRY_IMAGE="${FAAS_REGISTRY_REPO}/${FAAS_REGISTRY_NAME}:${FAAS_REGISTRY_VERSION}" + .DEFAULT_GOAL := help @@ -13,13 +28,19 @@ build-nc: # build container without caching docker build --no-cache -t ${FAAS_REGISTRY_IMAGE} --build-arg FAAS_REGISTRY_NAME=${FAAS_REGISTRY_NAME} --build-arg FAAS_REGISTRY_IMAGE=${FAAS_REGISTRY_IMAGE} --build-arg FAAS_REGISTRY_VERSION=${FAAS_REGISTRY_VERSION} . run: # run container - docker run -i -t --detach --rm --env-file=$(config) -p=${FAAS_REGISTRY_PORT}:80 --name="${FAAS_REGISTRY_NAME}" ${FAAS_REGISTRY_IMAGE} + docker run -i -t --detach --rm --env-file=$(config) --env-file=$(credentials) -p=${FAAS_REGISTRY_PORT}:80 --name="${FAAS_REGISTRY_NAME}" ${FAAS_REGISTRY_IMAGE} run-nd: # run container in no-deamon mode - docker run -i -t --rm --env-file=$(config) -p=${FAAS_REGISTRY_PORT}:80 --name="${FAAS_REGISTRY_NAME}" ${FAAS_REGISTRY_IMAGE} + docker run -i -t --rm --env-file=$(config) --env-file=$(credentials) -p=${FAAS_REGISTRY_PORT}:80 --name="${FAAS_REGISTRY_NAME}" ${FAAS_REGISTRY_IMAGE} up: build run # build and run container +compose-up: + docker-compose -f docker-compose.yml up --remove-orphans + +compose-down: + docker-compose -f docker-compose.yml down + logs: # print docker logs docker logs ${FAAS_REGISTRY_NAME} diff --git a/conf/credentials/.gitkeep b/conf/credentials/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/conf/credentials/faas-registry-default.cnf b/conf/credentials/faas-registry-default.cnf new file mode 100644 index 0000000000000000000000000000000000000000..4532c170d553316a4ffea5610e7e400690bf2f62 --- /dev/null +++ b/conf/credentials/faas-registry-default.cnf @@ -0,0 +1,2 @@ +MYSQL_ROOT_PASSWORD=changeme +FAAS_REGISTRY_DB_PASSWORD=changeme diff --git a/conf/etc/entrypoint b/conf/etc/entrypoint index e55bf3a0e09d6afff8d877014abc82359edc4270..a52ca92b843515612299502fd8149ff3c9854515 100755 --- a/conf/etc/entrypoint +++ b/conf/etc/entrypoint @@ -6,6 +6,28 @@ sed -E -i -e 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/7.4/a sed -E -i -e 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/7.4/apache2/php.ini -sed -i 's#$config\[\x27base_url\x27\]\s=\s\x27\x27#$config\[\x27base_url\x27\] = \x27'${FAAS_REGISTRY_BASE_URL}'\x27#g' /opt/rr3/application/config/config.php +#sed -i 's#$config\[\x27base_url\x27\]\s=\s\x27\x27#$config\[\x27base_url\x27\] = \x27'${FAAS_REGISTRY_BASE_URL}'\x27#g' /opt/rr3/application/config/config.php + + +sed -i 's#__FAAS_REGISTRY_BASE_URL__#'${FAAS_REGISTRY_BASE_URL}'#g' /opt/rr3/application/config/config.php + +sed -i 's#__FAAS_REGISTRY_DB_HOSTNAME__#'${FAAS_REGISTRY_DB_HOSTNAME}'#g' /opt/rr3/application/config/database.php +sed -i 's#__FAAS_REGISTRY_DB_USERNAME__#'${FAAS_REGISTRY_DB_USERNAME}'#g' /opt/rr3/application/config/database.php +sed -i 's#__FAAS_REGISTRY_DB_NAME__#'${FAAS_REGISTRY_DB_NAME}'#g' /opt/rr3/application/config/database.php +sed -i 's#__FAAS_REGISTRY_DB_PASSWORD__#'${FAAS_REGISTRY_DB_PASSWORD}'#g' /opt/rr3/application/config/database.php +sed -i 's#__FAAS_REGISTRY_DB_PORT__#'${FAAS_REGISTRY_DB_PORT}'#g' /opt/rr3/application/config/database.php + + +sed -i 's#__FAAS_REGISTRY_DB_USERNAME__#'${FAAS_REGISTRY_DB_USERNAME}'#g' /docker-entrypoint-initdb.d/01-init-registry.sql.template +sed -i 's#__FAAS_REGISTRY_DB_NAME__#'${FAAS_REGISTRY_DB_NAME}'#g' /docker-entrypoint-initdb.d/01-init-registry.sql.template +sed -i 's#__FAAS_REGISTRY_DB_PASSWORD__#'${FAAS_REGISTRY_DB_PASSWORD}'#g' /docker-entrypoint-initdb.d/01-init-registry.sql.template + + + +mysql -h ${FAAS_REGISTRY_DB_HOSTNAME} -uroot -p${MYSQL_ROOT_PASSWORD} < /docker-entrypoint-initdb.d/01-init-registry.sql.template + +cd /opt/rr3/application +./doctrine orm:schema-tool:create +./doctrine orm:generate-proxies exec supervisord -c /etc/supervisord.conf diff --git a/conf/etc/registry/config.php b/conf/etc/registry/config.php new file mode 100644 index 0000000000000000000000000000000000000000..48fec7230211a4041b245e72060bab5e04bef43c --- /dev/null +++ b/conf/etc/registry/config.php @@ -0,0 +1,376 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); + +/* +|-------------------------------------------------------------------------- +| Base Site URL +|-------------------------------------------------------------------------- +| +| URL to your CodeIgniter root. Typically this will be your base URL, +| WITH a trailing slash: +| +| http://example.com/ +| +| If this is not set then CodeIgniter will guess the protocol, domain and +| path to your installation. +| +*/ +$config['base_url'] = '__FAAS_REGISTRY_BASE_URL__'; + +/* +|-------------------------------------------------------------------------- +| Index File +|-------------------------------------------------------------------------- +| +| Typically this will be your index.php file, unless you've renamed it to +| something else. If you are using mod_rewrite to remove the page set this +| variable so that it is blank. +| +*/ +$config['index_page'] = ''; + +/* +|-------------------------------------------------------------------------- +| URI PROTOCOL +|-------------------------------------------------------------------------- +| +| This item determines which server global should be used to retrieve the +| URI string. The default setting of 'AUTO' works for most servers. +| If your links do not seem to work, try one of the other delicious flavors: +| +| 'AUTO' Default - auto detects +| 'PATH_INFO' Uses the PATH_INFO +| 'QUERY_STRING' Uses the QUERY_STRING +| 'REQUEST_URI' Uses the REQUEST_URI +| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO +| +*/ +$config['uri_protocol'] = 'AUTO'; + +/* +|-------------------------------------------------------------------------- +| URL suffix +|-------------------------------------------------------------------------- +| +| This option allows you to add a suffix to all URLs generated by CodeIgniter. +| For more information please see the user guide: +| +| http://codeigniter.com/user_guide/general/urls.html +*/ + +$config['url_suffix'] = ''; + +/* +|-------------------------------------------------------------------------- +| Default Language +|-------------------------------------------------------------------------- +| +| This determines which set of language files should be used. Make sure +| there is an available translation if you intend to use something other +| than english. +| +*/ +$config['language'] = 'english'; + +/* +|-------------------------------------------------------------------------- +| Default Character Set +|-------------------------------------------------------------------------- +| +| This determines which character set is used by default in various methods +| that require a character set to be provided. +| +*/ +$config['charset'] = 'UTF-8'; + +/* +|-------------------------------------------------------------------------- +| Enable/Disable System Hooks +|-------------------------------------------------------------------------- +| +| If you would like to use the 'hooks' feature you must enable it by +| setting this variable to TRUE (boolean). See the user guide for details. +| +*/ +$config['enable_hooks'] = FALSE; + + +/* +|-------------------------------------------------------------------------- +| Class Extension Prefix +|-------------------------------------------------------------------------- +| +| This item allows you to set the filename/classname prefix when extending +| native libraries. For more information please see the user guide: +| +| http://codeigniter.com/user_guide/general/core_classes.html +| http://codeigniter.com/user_guide/general/creating_libraries.html +| +*/ +$config['subclass_prefix'] = 'MY_'; + + +/* +|-------------------------------------------------------------------------- +| Allowed URL Characters +|-------------------------------------------------------------------------- +| +| This lets you specify with a regular expression which characters are permitted +| within your URLs. When someone tries to submit a URL with disallowed +| characters they will get a warning message. +| +| As a security measure you are STRONGLY encouraged to restrict URLs to +| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_- +| +| Leave blank to allow all characters -- but only if you are insane. +| +| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! +| +*/ +$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; + + +/* +|-------------------------------------------------------------------------- +| Enable Query Strings +|-------------------------------------------------------------------------- +| +| By default CodeIgniter uses search-engine friendly segment based URLs: +| example.com/who/what/where/ +| +| By default CodeIgniter enables access to the $_GET array. If for some +| reason you would like to disable it, set 'allow_get_array' to FALSE. +| +| You can optionally enable standard query string based URLs: +| example.com?who=me&what=something&where=here +| +| Options are: TRUE or FALSE (boolean) +| +| The other items let you set the query string 'words' that will +| invoke your controllers and its functions: +| example.com/index.php?c=controller&m=function +| +| Please note that some of the helpers won't work as expected when +| this feature is enabled, since CodeIgniter is designed primarily to +| use segment based URLs. +| +*/ +$config['allow_get_array'] = TRUE; +$config['enable_query_strings'] = FALSE; +$config['controller_trigger'] = 'c'; +$config['function_trigger'] = 'm'; +$config['directory_trigger'] = 'd'; // experimental not currently in use + +/* +|-------------------------------------------------------------------------- +| Error Logging Threshold +|-------------------------------------------------------------------------- +| +| If you have enabled error logging, you can set an error threshold to +| determine what gets logged. Threshold options are: +| You can enable error logging by setting a threshold over zero. The +| threshold determines what gets logged. Threshold options are: +| +| 0 = Disables logging, Error logging TURNED OFF +| 1 = Error Messages (including PHP errors) +| 2 = Debug Messages +| 3 = Informational Messages +| 4 = All Messages +| +| For a live site you'll usually only enable Errors (1) to be logged otherwise +| your log files will fill up very fast. +| +*/ +$config['log_threshold'] = 4; + +/* +|-------------------------------------------------------------------------- +| Error Logging Directory Path +|-------------------------------------------------------------------------- +| +| Leave this BLANK unless you would like to set something other than the default +| application/logs/ folder. Use a full server path with trailing slash. +| +*/ +$config['log_path'] = '/var/log/rr3/'; + +/* +|-------------------------------------------------------------------------- +| Date Format for Logs +|-------------------------------------------------------------------------- +| +| Each item that is logged has an associated date. You can use PHP date +| codes to set your own date formatting +| +*/ +$config['log_date_format'] = 'Y-m-d H:i:s'; + +/* +|-------------------------------------------------------------------------- +| Cache Directory Path +|-------------------------------------------------------------------------- +| +| Leave this BLANK unless you would like to set something other than the default +| system/cache/ folder. Use a full server path with trailing slash. +| +*/ +$config['cache_path'] = ''; + +/* +|-------------------------------------------------------------------------- +| Encryption Key +|-------------------------------------------------------------------------- +| +| If you use the Encryption class or the Session class you +| MUST set an encryption key. See the user guide for info. +| +*/ +$config['encryption_key'] = 'jhiufhi34hfhewhfsdfhsd'; + +/* +|-------------------------------------------------------------------------- +| +|-------------------------------------------------------------------------- +| +| 'sess_driver' = the driver to load: cookie (Classic), native (PHP sessions), +| or your custom driver name +| 'sess_valid_drivers' = additional valid drivers which may be loaded +| 'sess_cookie_name' = the name you want for the cookie +| 'sess_expiration' = the number of SECONDS you want the session to last. +| by default sessions last 7200 seconds (two hours). Set to zero for no expiration. +| 'sess_expire_on_close' = Whether to cause the session to expire automatically +| when the browser window is closed +| 'sess_encrypt_cookie' = Whether to encrypt the cookie +| 'sess_use_database' = Whether to save the session data to a database +| 'sess_table_name' = The name of the session database table +| 'sess_match_ip' = Whether to match the user's IP address when reading the session data +| 'sess_match_useragent' = Whether to match the User Agent when reading the session data +| 'sess_time_to_update' = how many seconds between CI refreshing Session Information +| +*/ +$config['sess_driver'] = 'files'; +$config['sess_valid_drivers'] = array(); +$config['sess_cookie_name'] = 'rr3sess'; +$config['sess_expiration'] = 3600; +$config['sess_expire_on_close'] = TRUE; +$config['sess_encrypt_cookie'] = TRUE; +$config['sess_use_database'] = FALSE; +$config['sess_table_name'] = 'rr3sess'; +$config['sess_match_ip'] = FALSE; +$config['sess_match_useragent'] = TRUE; +$config['sess_time_to_update'] = 300; + +/* +|-------------------------------------------------------------------------- +| Cookie Related Variables +|-------------------------------------------------------------------------- +| +| 'cookie_prefix' = Set a prefix if you need to avoid collisions +| 'cookie_domain' = Set to .your-domain.com for site-wide cookies +| 'cookie_path' = Typically will be a forward slash +| 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists. +| +*/ +$config['cookie_prefix'] = ""; +$config['cookie_domain'] = ""; +$config['cookie_path'] = "/"; +$config['cookie_secure'] = TRUE; +$config['cookie_httponly'] = TRUE; + +/* +|-------------------------------------------------------------------------- +| Global XSS Filtering +|-------------------------------------------------------------------------- +| +| Determines whether the XSS filter is always active when GET, POST or +| COOKIE data is encountered +| +*/ +$config['global_xss_filtering'] = FALSE; + +/* +|-------------------------------------------------------------------------- +| Cross Site Request Forgery +|-------------------------------------------------------------------------- +| Enables a CSRF cookie token to be set. When set to TRUE, token will be +| checked on a submitted form. If you are accepting user data, it is strongly +| recommended CSRF protection be enabled. +| +| 'csrf_token_name' = The token name +| 'csrf_cookie_name' = The cookie name +| 'csrf_expire' = The number in seconds the token should expire. +*/ +$config['csrf_protection'] = TRUE; +$config['csrf_token_name'] = 'csrf_rr'; +$config['csrf_cookie_name'] = 'csrf_cookie_rr'; +$config['csrf_expire'] = 3600; + +/* +|-------------------------------------------------------------------------- +| Output Compression +|-------------------------------------------------------------------------- +| +| Enables Gzip output compression for faster page loads. When enabled, +| the output class will test whether your server supports Gzip. +| Even if it does, however, not all browsers support compression +| so enable only if you are reasonably sure your visitors can handle it. +| +| VERY IMPORTANT: If you are getting a blank page when compression is enabled it +| means you are prematurely outputting something to your browser. It could +| even be a line of whitespace at the end of one of your scripts. For +| compression to work, nothing can be sent before the output buffer is called +| by the output class. Do not 'echo' any values with compression enabled. +| +*/ +$config['compress_output'] = FALSE; + +/* +|-------------------------------------------------------------------------- +| Master Time Reference +|-------------------------------------------------------------------------- +| +| Options are 'local' or 'gmt'. This pref tells the system whether to use +| your server's local time as the master 'now' reference, or convert it to +| GMT. See the 'date helper' page of the user guide for information +| regarding date handling. +| +*/ +$config['time_reference'] = 'local'; + + +/* +|-------------------------------------------------------------------------- +| Rewrite PHP Short Tags +|-------------------------------------------------------------------------- +| +| If your PHP installation does not have short tag support enabled CI +| can rewrite the tags on-the-fly, enabling you to utilize that syntax +| in your view files. Options are TRUE or FALSE (boolean) +| +*/ +$config['rewrite_short_tags'] = FALSE; + + +/* +|-------------------------------------------------------------------------- +| Reverse Proxy IPs +|-------------------------------------------------------------------------- +| +| If your server is behind a reverse proxy, you must whitelist the proxy IP +| addresses from which CodeIgniter should trust the HTTP_X_FORWARDED_FOR +| header in order to properly identify the visitor's IP address. +| Comma-delimited, e.g. '10.0.1.200,10.0.1.201' +| +*/ +$config['proxy_ips'] = ''; + +$config['standardize_newlines'] = TRUE; +$config['composer_autoload'] = TRUE; + + +$config['registrationAutority'] = ''; +$config['load_registrationAutority'] = 'TRUE'; + + + +/* End of file config.php */ +/* Location: ./application/config/config.php */ diff --git a/conf/etc/registry/database.php b/conf/etc/registry/database.php new file mode 100644 index 0000000000000000000000000000000000000000..f9ca0b549aef49b38929875ff5c3c2cda81aefc7 --- /dev/null +++ b/conf/etc/registry/database.php @@ -0,0 +1,69 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +/* +| ------------------------------------------------------------------- +| DATABASE CONNECTIVITY SETTINGS +| ------------------------------------------------------------------- +| This file will contain the settings needed to access your database. +| +| For complete instructions please consult the 'Database Connection' +| page of the User Guide. +| +| ------------------------------------------------------------------- +| EXPLANATION OF VARIABLES +| ------------------------------------------------------------------- +| +| ['hostname'] The hostname of your database server. +| ['username'] The username used to connect to the database +| ['password'] The password used to connect to the database +| ['database'] The name of the database you want to connect to +| ['dbdriver'] The database type. ie: mysql. Currently supported: + mysql, mysqli, postgre, odbc, mssql, sqlite, oci8 +| ['dbprefix'] You can add an optional prefix, which will be added +| to the table name when using the Active Record class +| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection +| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed. +| ['cache_on'] TRUE/FALSE - Enables/disables query caching +| ['cachedir'] The path to the folder where cache files should be stored +| ['char_set'] The character set used in communicating with the database +| ['dbcollat'] The character collation used in communicating with the database +| NOTE: For MySQL and MySQLi databases, this setting is only used +| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7. +| There is an incompatibility in PHP with mysql_real_escape_string() which +| can make your site vulnerable to SQL injection if you are using a +| multi-byte character set and are running versions lower than these. +| Sites using Latin-1 or UTF-8 database character set and collation are unaffected. +| ['swap_pre'] A default table prefix that should be swapped with the dbprefix +| ['autoinit'] Whether or not to automatically initialize the database. +| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections +| - good for ensuring strict SQL while developing +| +| The $active_group variable lets you choose which connection group to +| make active. By default there is only one group (the 'default' group). +| +| The $active_record variables lets you determine whether or not to load +| the active record class +*/ + +$active_group = 'default'; +$active_record = TRUE; + +$db['default']['hostname'] = '__FAAS_REGISTRY_DB_HOSTNAME__'; +$db['default']['username'] = '__FAAS_REGISTRY_DB_USERNAME__'; +$db['default']['password'] = '__FAAS_REGISTRY_DB_PASSWORD__'; +$db['default']['database'] = '__FAAS_REGISTRY_DB_NAME__'; +$db['default']['dsn'] = 'mysql:host=__FAAS_REGISTRY_DB_HOSTNAME__;port=__FAAS_REGISTRY_DB_PORT__;dbname=__FAAS_REGISTRY_DB_NAME__'; +$db['default']['dbdriver'] = 'pdo'; +$db['default']['dbprefix'] = ''; +$db['default']['pconnect'] = TRUE; +$db['default']['db_debug'] = TRUE; +$db['default']['cache_on'] = FALSE; +$db['default']['cachedir'] = ''; +$db['default']['char_set'] = 'utf8'; +$db['default']['dbcollat'] = 'utf8_general_ci'; +$db['default']['swap_pre'] = ''; +$db['default']['autoinit'] = TRUE; +$db['default']['stricton'] = FALSE; + + +/* End of file database.php */ +/* Location: ./application/config/database.php */ diff --git a/conf/faas-db.cnf b/conf/faas-db.cnf new file mode 100644 index 0000000000000000000000000000000000000000..47088201bece812e31250f0ccebca1d575887d0c --- /dev/null +++ b/conf/faas-db.cnf @@ -0,0 +1,6 @@ +FAAS_DB_REPO=faas +FAAS_DB_VERSION=1.0-SNAPSHOT +FAAS_DB_NAME=faas-db + +FAAS_DB_VOLUME_VAR_LIB_MYSQL=/tmp/faas-db +FAAS_DB_PORT=9306 diff --git a/conf/faas-registry.cnf b/conf/faas-registry.cnf index 529e3880a7f90bf61823256a8d6f96ecad6f2284..3a4d588a989ad7d9431b0159ae72f083843ac8cb 100644 --- a/conf/faas-registry.cnf +++ b/conf/faas-registry.cnf @@ -1,8 +1,11 @@ FAAS_REGISTRY_REPO=faas FAAS_REGISTRY_NAME=faas-registry FAAS_REGISTRY_VERSION=1.0-SNAPSHOT -FAAS_REGISTRY_IMAGE=${FAAS_REGISTRY_REPO}/${FAAS_REGISTRY_NAME}:${FAAS_REGISTRY_VERSION} FAAS_REGISTRY_PORT=9080 FAAS_REGISTRY_BASE_URL=http://localhost:9080/rr3/ FAAS_REGISTRY_TIMEZONE=Europe/Warsaw + +FAAS_REGISTRY_DB_HOSTNAME=faas_db +FAAS_REGISTRY_DB_USERNAME=rr3_user +FAAS_REGISTRY_DB_NAME=rr3_db diff --git a/conf/faas-smtp.cnf b/conf/faas-smtp.cnf new file mode 100644 index 0000000000000000000000000000000000000000..2a7b155fd7019835550b717680ab761e689ed149 --- /dev/null +++ b/conf/faas-smtp.cnf @@ -0,0 +1,12 @@ +FAAS_SMTP_REPO=faas +FAAS_SMTP_NAME=faas-smtp +FAAS_SMTP_VERSION=1.0-SNAPSHOT + +FAAS_SMTP_MYHOSTNAME=test.faas.geant.net +FAAS_SMTP_INET_INTERFACES=all +FAAS_SMTP_INET_PROTOCOLS=all + +FAAS_SMTP_PORT=9025 + +FAAS_SMTP_ROOT_ALIASES_LIST=janny@man.poznan.pl +FAAS_SMTP_POSTFIX_MYNETWORKS=127.0.0.1/32 192.168.0.0/16 172.16.0.0/12 172.17.0.0/16 10.0.0.0/8 diff --git a/conf/sql/01-init-registry.sql.template b/conf/sql/01-init-registry.sql.template new file mode 100644 index 0000000000000000000000000000000000000000..47fe6950442b2df5e4fbff3a912418e071bf22ed --- /dev/null +++ b/conf/sql/01-init-registry.sql.template @@ -0,0 +1,4 @@ +CREATE DATABASE IF NOT EXISTS __FAAS_REGISTRY_DB_NAME__ CHARACTER SET utf8 COLLATE utf8_general_ci; +GRANT ALL ON __FAAS_REGISTRY_DB_NAME__.* to __FAAS_REGISTRY_DB_USERNAME__@'localhost' IDENTIFIED BY '__FAAS_REGISTRY_DB_PASSWORD__'; +GRANT ALL ON __FAAS_REGISTRY_DB_NAME__.* to __FAAS_REGISTRY_DB_USERNAME__@'%' IDENTIFIED BY '__FAAS_REGISTRY_DB_PASSWORD__'; +FLUSH PRIVILEGES; diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..84db1cddf9a295ecb914fa6331d3277b137f42b6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3.3' + +services: + faas_db: + image: ${FAAS_DB_REPO}/${FAAS_DB_NAME}:${FAAS_DB_VERSION} + volumes: + - ${FAAS_DB_VOLUME_VAR_LIB_MYSQL}:/var/lib/mysql + restart: always + ports: + - ${FAAS_DB_PORT}:3306 + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + + faas_smtp: + image: ${FAAS_SMTP_REPO}/${FAAS_SMTP_NAME}:${FAAS_SMTP_VERSION} + restart: always + ports: + - ${FAAS_SMTP_PORT}:25 + environment: + FAAS_SMTP_MYHOSTNAME: ${FAAS_SMTP_MYHOSTNAME} + FAAS_SMTP_INET_INTERFACES: ${FAAS_SMTP_INET_INTERFACES} + FAAS_SMTP_INET_PROTOCOLS: ${FAAS_SMTP_INET_PROTOCOLS} + FAAS_SMTP_ROOT_ALIASES_LIST: "${FAAS_SMTP_ROOT_ALIASES_LIST}" + FAAS_SMTP_POSTFIX_MYNETWORKS: "${FAAS_SMTP_POSTFIX_MYNETWORKS}" + + faas_registry: + image: ${FAAS_REGISTRY_REPO}/${FAAS_REGISTRY_NAME}:${FAAS_REGISTRY_VERSION} + depends_on: + - faas_db + - faas_smtp + ports: + - ${FAAS_REGISTRY_PORT}:80 + restart: always + environment: + FAAS_REGISTRY_BASE_URL: ${FAAS_REGISTRY_BASE_URL} + FAAS_REGISTRY_TIMEZONE: ${FAAS_REGISTRY_TIMEZONE} + FAAS_REGISTRY_DB_HOSTNAME: ${FAAS_REGISTRY_DB_HOSTNAME} + FAAS_REGISTRY_DB_USERNAME: ${FAAS_REGISTRY_DB_USERNAME} + FAAS_REGISTRY_DB_PORT: ${FAAS_DB_PORT} + FAAS_REGISTRY_DB_NAME: ${FAAS_REGISTRY_DB_NAME} + FAAS_REGISTRY_DB_PASSWORD: ${FAAS_REGISTRY_DB_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}