Fix Docker api issues
This commit is contained in:
@@ -1,22 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
main() {
|
||||
prep_file_permissions
|
||||
prep_storage
|
||||
wait_for_db
|
||||
apply_db_migrations
|
||||
run_init_project
|
||||
run_server "$@"
|
||||
}
|
||||
|
||||
is_master() {
|
||||
echo "$@" | grep -q php-fpm
|
||||
if [ "$IS_API_WORKER" = "true" ]; then
|
||||
# This is the API worker, skip setup and just run the command
|
||||
exec "$@"
|
||||
else
|
||||
# This is the API service, run full setup
|
||||
prep_file_permissions
|
||||
prep_storage
|
||||
wait_for_db
|
||||
apply_db_migrations
|
||||
run_init_project
|
||||
run_server "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
prep_file_permissions() {
|
||||
chmod a+x ./artisan
|
||||
}
|
||||
|
||||
prep_storage() {
|
||||
# Create Laravel-specific directories
|
||||
mkdir -p /persist/storage/framework/cache/data
|
||||
mkdir -p /persist/storage/framework/sessions
|
||||
mkdir -p /persist/storage/framework/views
|
||||
|
||||
# Set permissions for the entire storage directory
|
||||
chown -R www-data:www-data /persist/storage
|
||||
chmod -R 775 /persist/storage
|
||||
|
||||
# Create symlink to the correct storage location
|
||||
ln -sf /persist/storage /usr/share/nginx/html/storage
|
||||
|
||||
touch /var/log/opnform.log
|
||||
chown www-data /var/log/opnform.log
|
||||
|
||||
# Ensure proper permissions for the storage directory
|
||||
chown -R www-data:www-data /usr/share/nginx/html/storage
|
||||
chmod -R 775 /usr/share/nginx/html/storage
|
||||
}
|
||||
|
||||
wait_for_db() {
|
||||
echo "Waiting for DB to be ready"
|
||||
until ./artisan migrate:status 2>&1 | grep -q -E "(Migration table not found|Migration name)"; do
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
apply_db_migrations() {
|
||||
echo "Running DB Migrations"
|
||||
./artisan migrate
|
||||
@@ -27,35 +57,9 @@ run_init_project() {
|
||||
./artisan app:init-project
|
||||
}
|
||||
|
||||
wait_for_db() {
|
||||
echo "Waiting for DB to be ready"
|
||||
until ./artisan migrate:status 2>&1 | grep -q -E "(Migration table not found|Migration name)"; do
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
run_server() {
|
||||
echo "Starting server $@"
|
||||
/usr/local/bin/docker-php-entrypoint "$@"
|
||||
}
|
||||
|
||||
prep_storage() {
|
||||
mkdir -p /etc/initial-storage
|
||||
if [ ! -d /etc/initial-storage/app ]; then
|
||||
echo "Backing up initial storage directory"
|
||||
cp -a ./storage/* /etc/initial-storage/
|
||||
fi
|
||||
|
||||
mkdir -p /persist/storage
|
||||
if [ ! -d /persist/storage/app ]; then
|
||||
echo "Initialising blank storage dir"
|
||||
cp -a /etc/initial-storage/* /persist/storage/
|
||||
fi
|
||||
|
||||
chmod -R 777 /persist/storage
|
||||
|
||||
touch /var/log/opnform.log
|
||||
chown www-data /var/log/opnform.log
|
||||
exec /usr/local/bin/docker-php-entrypoint "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user