cleanup docker environment variables (#5074)
This commit is contained in:
@@ -1,17 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
$DB_HOST = urldecode($argv[1]);
|
$DATABASE_HOST = urldecode($argv[1]);
|
||||||
$DB_BASE = urldecode($argv[2]);
|
$DATABASE_BASE = urldecode($argv[2]);
|
||||||
$DB_PORT = $argv[3];
|
$DATABASE_PORT = $argv[3];
|
||||||
$DB_USER = urldecode($argv[4]);
|
$DATABASE_USER = urldecode($argv[4]);
|
||||||
$DB_PASS = urldecode($argv[5]);
|
$DATABASE_PASS = urldecode($argv[5]);
|
||||||
|
|
||||||
echo "Testing DB:";
|
echo "Testing DB:";
|
||||||
echo "*";
|
echo "*";
|
||||||
echo "* new \PDO(mysql:host=$DB_HOST;dbname=$DB_BASE;port=$DB_PORT, $DB_USER, $DB_PASS, [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION ]);";
|
echo "* new \PDO(mysql:host=$DATABASE_HOST;dbname=$DATABASE_BASE;port=$DATABASE_PORT, $DATABASE_USER, $DATABASE_PASS, [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION ]);";
|
||||||
echo "*";
|
echo "*";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$pdo = new \PDO("mysql:host=$DB_HOST;dbname=$DB_BASE;port=$DB_PORT", "$DB_USER", "$DB_PASS", [
|
$pdo = new \PDO("mysql:host=$DATABASE_HOST;dbname=$DATABASE_BASE;port=$DATABASE_PORT", "$DATABASE_USER", "$DATABASE_PASS", [
|
||||||
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
|
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
|
||||||
]);
|
]);
|
||||||
} catch(\Exception $ex) {
|
} catch(\Exception $ex) {
|
||||||
|
|||||||
@@ -2,30 +2,19 @@
|
|||||||
|
|
||||||
function waitForDB() {
|
function waitForDB() {
|
||||||
# Parse sql connection data
|
# Parse sql connection data
|
||||||
if [ ! -z "$DATABASE_URL" ]; then
|
DATABASE_USER=$(awk -F '[/:@]' '{print $4}' <<< "$DATABASE_URL")
|
||||||
DB_TYPE=$(awk -F '[/:@]' '{print $1}' <<< "$DATABASE_URL")
|
DATABASE_PASS=$(awk -F '[/:@]' '{print $5}' <<< "$DATABASE_URL")
|
||||||
DB_USER=$(awk -F '[/:@]' '{print $4}' <<< "$DATABASE_URL")
|
DATABASE_HOST=$(awk -F '[/:@]' '{print $6}' <<< "$DATABASE_URL")
|
||||||
DB_PASS=$(awk -F '[/:@]' '{print $5}' <<< "$DATABASE_URL")
|
DATABASE_PORT=$(awk -F '[/:@]' '{print $7}' <<< "$DATABASE_URL")
|
||||||
DB_HOST=$(awk -F '[/:@]' '{print $6}' <<< "$DATABASE_URL")
|
DATABASE_BASE=$(awk -F '[/?]' '{print $4}' <<< "$DATABASE_URL")
|
||||||
DB_PORT=$(awk -F '[/:@]' '{print $7}' <<< "$DATABASE_URL")
|
|
||||||
DB_BASE=$(awk -F '[/?]' '{print $4}' <<< "$DATABASE_URL")
|
|
||||||
else
|
|
||||||
DB_TYPE=${DB_TYPE:mysql}
|
|
||||||
if [ "$DB_TYPE" == "mysql" ]; then
|
|
||||||
export DATABASE_URL="${DB_TYPE}://${DB_USER:=kimai}:${DB_PASS:=kimai}@${DB_HOST:=sqldb}:${DB_PORT:=3306}/${DB_BASE:=kimai}"
|
|
||||||
else
|
|
||||||
echo "Unknown database type, cannot proceed. Only 'mysql' is supported, received: [$DB_TYPE]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
re='^[0-9]+$'
|
re='^[0-9]+$'
|
||||||
if ! [[ $DB_PORT =~ $re ]] ; then
|
if ! [[ $DATABASE_PORT =~ $re ]] ; then
|
||||||
DB_PORT=3306
|
DATABASE_PORT=3306
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Wait for MySQL DB connection ..."
|
echo "Wait for database connection ..."
|
||||||
until php /dbtest.php $DB_HOST $DB_BASE $DB_PORT $DB_USER $DB_PASS; do
|
until php /dbtest.php "$DATABASE_HOST" "$DATABASE_BASE" "$DATABASE_PORT" "$DATABASE_USER" "$DATABASE_PASS"; do
|
||||||
echo Checking DB: $?
|
echo Checking DB: $?
|
||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
@@ -33,14 +22,14 @@ function waitForDB() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleStartup() {
|
function handleStartup() {
|
||||||
# These are idempotent, run them anyway
|
# These are idempotent, so we can run them on every start-up
|
||||||
/opt/kimai/bin/console -n kimai:install
|
/opt/kimai/bin/console -n kimai:install
|
||||||
/opt/kimai/bin/console -n kimai:update
|
/opt/kimai/bin/console -n kimai:update
|
||||||
if [ ! -z "$ADMINPASS" ] && [ ! -a "$ADMINMAIL" ]; then
|
if [ ! -z "$ADMINPASS" ] && [ ! -a "$ADMINMAIL" ]; then
|
||||||
/opt/kimai/bin/console kimai:user:create superadmin "$ADMINMAIL" ROLE_SUPER_ADMIN "$ADMINPASS"
|
/opt/kimai/bin/console kimai:user:create admin "$ADMINMAIL" ROLE_SUPER_ADMIN "$ADMINPASS"
|
||||||
fi
|
fi
|
||||||
echo "$KIMAI" > /opt/kimai/var/installed
|
echo "$KIMAI" > /opt/kimai/var/installed
|
||||||
echo "Kimai2 ready"
|
echo "Kimai is ready"
|
||||||
}
|
}
|
||||||
|
|
||||||
function runServer() {
|
function runServer() {
|
||||||
|
|||||||
@@ -3,39 +3,25 @@
|
|||||||
KIMAI=$(cat /opt/kimai/version.txt)
|
KIMAI=$(cat /opt/kimai/version.txt)
|
||||||
echo $KIMAI
|
echo $KIMAI
|
||||||
|
|
||||||
|
|
||||||
function config() {
|
function config() {
|
||||||
# set mem limits and copy in custom logger config
|
# set mem limits and copy in custom logger config
|
||||||
if [ -z "$memory_limit" ]; then
|
if [ -z "$memory_limit" ]; then
|
||||||
memory_limit=256M
|
memory_limit=256M
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
DATABASE_USER=$(awk -F '[/:@]' '{print $4}' <<< "$DATABASE_URL")
|
||||||
# Parse sql connection data
|
DATABASE_PASS=$(awk -F '[/:@]' '{print $5}' <<< "$DATABASE_URL")
|
||||||
if [ ! -z "$DATABASE_URL" ]; then
|
DATABASE_HOST=$(awk -F '[/:@]' '{print $6}' <<< "$DATABASE_URL")
|
||||||
DB_TYPE=$(awk -F '[/:@]' '{print $1}' <<< "$DATABASE_URL")
|
DATABASE_PORT=$(awk -F '[/:@]' '{print $7}' <<< "$DATABASE_URL")
|
||||||
DB_USER=$(awk -F '[/:@]' '{print $4}' <<< "$DATABASE_URL")
|
DATABASE_BASE=$(awk -F '[/?]' '{print $4}' <<< "$DATABASE_URL")
|
||||||
DB_PASS=$(awk -F '[/:@]' '{print $5}' <<< "$DATABASE_URL")
|
|
||||||
DB_HOST=$(awk -F '[/:@]' '{print $6}' <<< "$DATABASE_URL")
|
|
||||||
DB_PORT=$(awk -F '[/:@]' '{print $7}' <<< "$DATABASE_URL")
|
|
||||||
DB_BASE=$(awk -F '[/?]' '{print $4}' <<< "$DATABASE_URL")
|
|
||||||
else
|
|
||||||
DB_TYPE=${DB_TYPE:mysql}
|
|
||||||
if [ "$DB_TYPE" == "mysql" ]; then
|
|
||||||
export DATABASE_URL="${DB_TYPE}://${DB_USER:=kimai}:${DB_PASS:=kimai}@${DB_HOST:=sqldb}:${DB_PORT:=3306}/${DB_BASE:=kimai}"
|
|
||||||
else
|
|
||||||
echo "Unknown database type, cannot proceed. Only 'mysql' is supported, received: [$DB_TYPE]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
re='^[0-9]+$'
|
re='^[0-9]+$'
|
||||||
if ! [[ $DB_PORT =~ $re ]] ; then
|
if ! [[ $DATABASE_PORT =~ $re ]] ; then
|
||||||
DB_PORT=3306
|
DATABASE_PORT=3306
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Wait for MySQL DB connection ..."
|
echo "Wait for database connection ..."
|
||||||
until php /dbtest.php $DB_HOST $DB_BASE $DB_PORT $DB_USER $DB_PASS; do
|
until php /dbtest.php "$DATABASE_HOST" "$DATABASE_BASE" "$DATABASE_PORT" "$DATABASE_USER" "$DATABASE_PASS"; do
|
||||||
echo Checking DB: $?
|
echo Checking DB: $?
|
||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
|
|||||||
13
Dockerfile
13
Dockerfile
@@ -79,18 +79,11 @@ ENV MAILER_FROM=kimai@example.com
|
|||||||
ENV MAILER_URL=null://localhost
|
ENV MAILER_URL=null://localhost
|
||||||
ENV ADMINPASS=
|
ENV ADMINPASS=
|
||||||
ENV ADMINMAIL=
|
ENV ADMINMAIL=
|
||||||
ENV DB_TYPE=
|
|
||||||
ENV DB_USER=
|
|
||||||
ENV DB_PASS=
|
|
||||||
ENV DB_HOST=
|
|
||||||
ENV DB_PORT=
|
|
||||||
ENV DB_BASE=
|
|
||||||
ENV COMPOSER_MEMORY_LIMIT=-1
|
|
||||||
# If this set then the image will start, run a self test and then exit. It's used for the release process
|
|
||||||
ENV TEST_AND_EXIT=
|
|
||||||
ENV COMPOSER_ALLOW_SUPERUSER=1
|
|
||||||
ENV USER_ID=
|
ENV USER_ID=
|
||||||
ENV GROUP_ID=
|
ENV GROUP_ID=
|
||||||
|
# default values to configure composer behavior
|
||||||
|
ENV COMPOSER_MEMORY_LIMIT=-1
|
||||||
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
||||||
|
|
||||||
VOLUME [ "/opt/kimai/var" ]
|
VOLUME [ "/opt/kimai/var" ]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user