Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F120826968
init.sh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
4 KB
Referenced Files
None
Subscribers
None
init.sh
View Options
#!/bin/bash
set
-e
set
-x
cd
/opt/app-root/src/
REBUILD
=
false
# Update the sourcecode if available.
# This also copies the .env files that is required if we don't provide
# a configuration via the environment.
# So we need this for the docker-compose setup
if
[
-d /src/kolabsrc.orig
]
;
then
echo
"----> Updating source"
rsync -av
\
--exclude
=
vendor
\
--exclude
=
composer.lock
\
--exclude
=
node_modules
\
--exclude
=
package-lock.json
\
--exclude
=
public
\
--exclude
=
storage
\
--exclude
=
resources/build
\
--exclude
=
bootstrap
\
--exclude
=
.gitignore
\
/src/kolabsrc.orig/ /opt/app-root/src/
|
tee /tmp/rsync.output
REBUILD
=
true
fi
if
[
-d /src/overlay
]
;
then
echo
"----> Applying overlay"
rsync -av
\
--exclude
=
vendor
\
--exclude
=
composer.lock
\
--exclude
=
node_modules
\
--exclude
=
package-lock.json
\
--exclude
=
public
\
--exclude
=
storage
\
--exclude
=
resources/build
\
--exclude
=
bootstrap
\
--exclude
=
.gitignore
\
/src/overlay/ /opt/app-root/src/
|
tee /tmp/rsync-overlay.output
REBUILD
=
true
fi
# If we want to rely on the environment for configuration
if
[
$NOENVFILE
]
;
then
echo
"----> removing envfile"
rm -f .env
fi
if
[
$REBUILD
]
;
then
rm -rf storage/framework
mkdir -p storage/framework/
{
sessions,views,cache
}
find bootstrap/cache/ -type f ! -name
".gitignore"
-delete
./artisan clear-compiled
./artisan cache:clear
php -dmemory_limit
=
-1
$(
command
-v composer
)
install
fi
if
[
! -f
'resources/countries.php'
]
;
then
echo
"----> Importing countries"
./artisan data:countries
fi
echo
"----> Waiting for db"
./artisan db:ping --wait
function
is_not_initialized
()
{
ROWCOUNT
=
$(
echo
"select count(*) from migrations;"
|
mysql -N -b -u
"
$DB_USERNAME
"
-p
"
$DB_PASSWORD
"
-h
"
$DB_HOST
"
"
$DB_DATABASE
"
)
if
[[
"
$ROWCOUNT
"
==
""
]]
;
then
# Treat an error in the above command as uninitialized
ROWCOUNT
=
"0"
fi
[[
"
$ROWCOUNT
"
==
"0"
]]
}
case
${
KOLAB_ROLE
}
in
seed
|
SEED
)
echo
"----> Running seeder"
# Only run the seeder if we haven't even migrated yet.
if
is_not_initialized
;
then
echo
"----> Seeding the database"
# If we seed, we always drop all existing tables
php -dmemory_limit
=
512M ./artisan migrate:fresh --seed
fi
;;
horizon
|
HORIZON
)
echo
"----> Waiting for database to be seeded"
while
is_not_initialized
;
do
sleep
1
echo
"."
done
echo
"----> Running migrations"
php -dmemory_limit
=
512M ./artisan migrate --force
||
:
echo
"----> Starting horizon"
./artisan horizon
;;
octane
|
OCTANE
)
echo
"----> Running octane"
echo
"----> Waiting for database to be seeded"
while
is_not_initialized
;
do
sleep
1
echo
"."
done
exec
./artisan octane:start --host
=
0
.0.0.0
;;
worker
|
WORKER
)
./artisan migrate --force
||
:
echo
"----> Running worker"
exec
./artisan queue:work
;;
combined
|
COMBINED
)
# If there is no db at all then listing users will crash (resulting in us counting the lines of backtrace),
# but migrate:status will just fail.
if
is_not_initialized
;
then
echo
"----> Seeding the database"
php -dmemory_limit
=
512M ./artisan migrate --seed
||
:
# If there is a db but no user we reseed
elif
test
"
$(
env
APP_DEBUG
=
false
./artisan -n users
|
wc -l
)
"
-lt
"1"
;
then
echo
"----> Initializing the database"
php -dmemory_limit
=
512M ./artisan migrate:refresh --seed
# Otherwise we just migrate
else
echo
"----> Running migrations"
php -dmemory_limit
=
512M ./artisan migrate --force
fi
./artisan data:import
||
:
nohup ./artisan horizon
2
>
&
1
&
exec
./artisan octane:start --host
=
$(
env
|
grep OCTANE_HTTP_HOST
|
tail -n1
|
sed
"s/OCTANE_HTTP_HOST=//"
)
;;
*
)
echo
"----> Sleeping"
exec
sleep
10000
;;
esac
File Metadata
Details
Attached
Mime Type
text/x-shellscript
Expires
Fri, Apr 24, 11:03 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18866058
Default Alt Text
init.sh (4 KB)
Attached To
Mode
rK kolab
Attached
Detach File
Event Timeline