init.sh.cfg

This is the main configuration file. Its variables will be used by the templates. You can define your own additional variables to use them in templates too.

It’s a MUST to change this file.

It is a MUST to change

  • APP_NAME

You SHOULD change the portmappings in

  • APP_PORT
  • DB_PORT

Check needed packages and modules in

  • APP_APT_PACKAGES
  • APP_PHP_MODULES

You can change versions

  • APP_PHP_VERSION
  • MYSQL_IMAGE

Initial config

# ======================================================================
#
# settings for init.sh and base values for replacements in template files
# This script is sourced by init.sh ... this file is bash syntax
# 
# ----------------------------------------------------------------------
# 2021-12-17  <axel.hahn@iml.unibe.ch>
# ======================================================================

APP_NAME=my_new_app

# web port 80 in container is seen on localhost as ...
APP_PORT=8001

APP_APT_PACKAGES="git unzip zip"

#APP_APACHE_MODULES="rewrite"
APP_APACHE_MODULES=""

APP_PHP_VERSION=8.1
# APP_PHP_MODULES="curl pdo_mysql mbstring xml zip xdebug"
APP_PHP_MODULES="curl mbstring xml zip xdebug"

# optional exec command after container was started with init.sh script
# APP_ONSTARTUP="php /var/www/${APP_NAME}/public_html/myservice.php"
APP_ONSTARTUP=""

# ----------------------------------------------------------------------

# add a container with database?
DB_ADD=false

# ----------------------------------------------------------------------
# for an optional database server

DB_PORT=13306

# ----- database settings
MYSQL_IMAGE=mariadb:10.5.9
MYSQL_RANDOM_ROOT_PASSWORD=0
MYSQL_ALLOW_EMPTY_PASSWORD=0
MYSQL_ROOT_PASS=12345678
MYSQL_USER=${APP_NAME}
MYSQL_PASS=mypassword
MYSQL_DB=${APP_NAME}



# ======================================================================
# ignore things below


# where to set acl where local user and web user in container
# can write simultanously
WRITABLEDIR=../public_html


# web service user in container
DOCKER_USER_UID=33

# document root inside web-server container 
WEBROOT=/var/www/${APP_NAME}/public_html

CUTTER_NO_DATABASE="CUT-HERE-FOR-NO-DATABASE"

frontendurl=http://localhost:${APP_PORT}/

# ----------------------------------------------------------------------

Description

In alphabetic order:

variable type description
APP_APACHE_MODULES string list of additional apache modules in apache container; separated with spaces
APP_APT_PACKAGES string list of additional packages in apache container; example: “git unzip zip”
APP_NAME string a uniq application name. It will be used as prefix for containers, network and other places. It is a MUST to change it in every new project.
APP_ONSTARTUP string optional command to execut if the apache container is up “”
APP_PHP_MODULES string list of additional php modules in apache container; separated with spaces
see https://github.com/mlocati/docker-php-extension-installer for the list of supported modules
example: “curl mbstring xml zip xdebug”
APP_PHP_VERSION string PHP version in apache container; example: 8.2
APP_PORT int port number for your local machine that will be maped to port 80 in the container; Change it if you run multiple projects in parallel; example: 8001;
Hint: set one port per application. Coordinate within in your dev team what port to use for what application
CUTTER_NO_DATABASE const do not change it; the string is used to cut templates from there if no database is used
DB_ADD bool flag: do you add a Mariadb container? default: false
DB_PORT int port number for your local machine that will be mapped to port 3306 in the container; You can use it in a local db manager; remark: tha apache container needs 3306 and not the mapped port.
DOCKER_USER_UID int unix uid of the httpd service user in apache container; it’s not needed to change; default: 33
MYSQL_ALLOW_EMPTY_PASSWORD int flag: 0
MYSQL_DB string name of database; defaut is app name ${APP_NAME}
MYSQL_IMAGE string image to use; default: mariadb:10.5.9
MYSQL_PASS string mypassword
MYSQL_RANDOM_ROOT_PASSWORD string 0
MYSQL_ROOT_PASS string 12345678
MYSQL_USER string ${APP_NAME}
WEBROOT string webroot directory inside apache container; default: /var/www/${APP_NAME}/public_html
WRITABLEDIR string local webroot directory; default: ../public_html