diff --git a/.gitignore b/.gitignore index f728a3c8..d0c82100 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .env .env.backup .phpunit.result.cache +.pnpm-store docker-compose.override.yml npm-debug.log yarn-error.log diff --git a/console b/console index 0fb878f9..f5c881c3 160000 --- a/console +++ b/console @@ -1 +1 @@ -Subproject commit 0fb878f9a46d217ce6b2d051b38dbd47987e6586 +Subproject commit f5c881c3b605c9869688cfe7ad75bae72a914047 diff --git a/docker-compose.yml b/docker-compose.yml index c21826f5..17fb7490 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,9 +27,14 @@ services: SOCKETCLUSTER_BROKERS: 10 console: + ports: + - "4200:4200" + volumes: + - ./console:/app/console + - ./packages:/app/packages build: - context: ./console - dockerfile: Dockerfile + context: . + dockerfile: console/Dockerfile args: ENVIRONMENT: development diff --git a/docker/Dockerfile b/docker/Dockerfile index d9b7a0fe..e9cc04c7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,78 +1,102 @@ +# Base stage FROM php:7.4-fpm-bullseye as base -# download and install geos php bindings -# need to run docker-php-ext-configure to create /usr/src/php/ext dir -RUN mkdir -p /usr/src/php/ext && curl -L https://git.osgeo.org/gitea/geos/php-geos/archive/1.0.0.tar.gz > /tmp/php-geos.tar.gz && tar -C /usr/src/php/ext -xzvf /tmp/php-geos.tar.gz +# Download and install GEOS PHP bindings +RUN mkdir -p /usr/src/php/ext \ + && curl -L https://git.osgeo.org/gitea/geos/php-geos/archive/1.0.0.tar.gz > /tmp/php-geos.tar.gz \ + && tar -C /usr/src/php/ext -xzvf /tmp/php-geos.tar.gz -RUN apt-get update && apt-get install -y git unzip libzip-dev \ - libgd-dev \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libpng-dev \ - imagemagick libmagickwand-dev --no-install-recommends \ - libmemcached-dev \ - libgeos-dev \ - libgmp-dev \ - default-mysql-client \ - libicu-dev \ - tmux \ +# Install required packages and PHP extensions +RUN apt-get update \ + && apt-get install -y git unzip libzip-dev libgd-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev \ + imagemagick libmagickwand-dev --no-install-recommends libmemcached-dev libgeos-dev libgmp-dev \ + default-mysql-client libicu-dev tmux \ && pecl install imagick \ && docker-php-ext-enable imagick \ - && docker-php-ext-configure gd --with-external-gd && docker-php-ext-configure php-geos \ - && docker-php-ext-install -j$(nproc) gmp php-geos gd zip pdo_mysql sockets intl bcmath && pecl install redis-4.3.0 memcached-3.1.3 && docker-php-ext-enable redis memcached opcache bcmath + && docker-php-ext-configure gd --with-external-gd \ + && docker-php-ext-configure php-geos \ + && docker-php-ext-install -j$(nproc) gmp php-geos gd zip pdo_mysql sockets intl bcmath \ + && pecl install redis-4.3.0 memcached-3.1.3 \ + && docker-php-ext-enable redis memcached opcache bcmath -RUN sed -e 's/^expose_php.*/expose_php = Off/' "$PHP_INI_DIR/php.ini-production" > "$PHP_INI_DIR/php.ini" -RUN sed -i -e 's/^upload_max_filesize.*/upload_max_filesize = 600M/' -e 's/^post_max_size.*/post_max_size = 0/' -e 's/^memory_limit.*/memory_limit = 600M/' "$PHP_INI_DIR/php.ini" +# Update PHP configurations +RUN sed -e 's/^expose_php.*/expose_php = Off/' "$PHP_INI_DIR/php.ini-production" > "$PHP_INI_DIR/php.ini" \ + && sed -i -e 's/^upload_max_filesize.*/upload_max_filesize = 600M/' -e 's/^post_max_size.*/post_max_size = 0/' \ + -e 's/^memory_limit.*/memory_limit = 600M/' "$PHP_INI_DIR/php.ini" -RUN curl -L https://github.com/springload/ssm-parent/releases/download/v1.4.3/ssm-parent_1.4.3_linux_amd64.tar.gz > /tmp/ssm-parent.tar.gz && tar -C /sbin -xvf /tmp/ssm-parent.tar.gz ssm-parent && rm /tmp/ssm-parent.tar.gz +# Install ssm-parent +RUN curl -L https://github.com/springload/ssm-parent/releases/download/v1.4.3/ssm-parent_1.4.3_linux_amd64.tar.gz > /tmp/ssm-parent.tar.gz \ + && tar -C /sbin -xvf /tmp/ssm-parent.tar.gz ssm-parent \ + && rm /tmp/ssm-parent.tar.gz +# Install Composer WORKDIR /var/www COPY docker/composer-install.sh ./ -RUN chmod +x ./composer-install.sh && ./composer-install.sh +RUN chmod +x ./composer-install.sh \ + && ./composer-install.sh + +# Copy packages COPY packages /var/www/html/packages WORKDIR /var/www/html/api -RUN chown www-data:www-data /var/www/html -RUN chown www-data:www-data /var/www/html/api + +# Set ownership and permissions +RUN chown www-data:www-data /var/www/html \ + && chown www-data:www-data /var/www/html/api USER www-data -RUN mkdir -p ./storage/logs/ && ln -sf /dev/stdout ./storage/logs/laravel.log -# copy these first to not reinstall everything on a random file change +RUN mkdir -p ./storage/logs/ \ + && ln -sf /dev/stdout ./storage/logs/laravel.log + +# Install Composer dependencies COPY api/composer.json api/composer.lock ./ RUN composer install --no-dev --no-scripts --no-autoloader + +# Run Laravel migrations +RUN php artisan mysql:createdb \ + && php artisan migrate \ + && php artisan sandbox:migrate + +# Copy application files COPY --chown=www-data:nogroup . ./ -# RUN composer dumpautoload USER root ARG ENVIRONMENT=production ENV APP_ENV=$ENVIRONMENT -#### Scheduler stages +# Scheduler base stage FROM base as scheduler-base -RUN curl -L https://github.com/webdevops/go-crond/releases/download/0.6.1/go-crond-64-linux-dynamic > /usr/local/bin/go-crond && chmod +x /usr/local/bin/go-crond + +# Install go-crond +RUN curl -L https://github.com/webdevops/go-crond/releases/download/0.6.1/go-crond-64-linux-dynamic > / usr/local/bin/go-crond && chmod +x /usr/local/bin/go-crond COPY docker/crontab ./crontab RUN chmod 0600 ./crontab +# Scheduler dev stage FROM scheduler-base as scheduler-dev ENTRYPOINT [] CMD ["go-crond", "--verbose", "--no-auto", "root:./crontab"] +# Scheduler stage FROM scheduler-base as scheduler ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--"] CMD ["go-crond", "--verbose", "--no-auto", "root:./crontab"] -#### Application stages +# Application dev stage FROM base as app-dev ENTRYPOINT ["docker-php-entrypoint"] # the default CMD ["php-fpm"] +# Events stage FROM base as events ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--", "docker-php-entrypoint"] CMD ["php", "api/artisan", "queue:work", "events"] +# Jobs stage FROM base as jobs ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--", "docker-php-entrypoint"] CMD ["php", "api/artisan", "queue:work", "sqs"] +# Application stage FROM base as app ENTRYPOINT ["/sbin/ssm-parent", "-c", ".ssm-parent.yaml", "run", "--", "docker-php-entrypoint"] -CMD ["php-fpm"] +CMD ["php-fpm"] \ No newline at end of file diff --git a/packages/core-api b/packages/core-api index 8655fe6a..55ee381b 160000 --- a/packages/core-api +++ b/packages/core-api @@ -1 +1 @@ -Subproject commit 8655fe6a9c7a0d54a590ded94f05c875de5b762b +Subproject commit 55ee381b76a74adf5abc5573b9fbc450ebf249dd diff --git a/packages/ember-ui b/packages/ember-ui index 03e7ea28..dcca7dd2 160000 --- a/packages/ember-ui +++ b/packages/ember-ui @@ -1 +1 @@ -Subproject commit 03e7ea288331fc121e43c368f2ec804c85ca3790 +Subproject commit dcca7dd2b18ebfb04752a7cb9bbd2d1ca293935d diff --git a/packages/fleetbase-extensions-indexer b/packages/fleetbase-extensions-indexer index f0ddf02a..b33b5b2a 160000 --- a/packages/fleetbase-extensions-indexer +++ b/packages/fleetbase-extensions-indexer @@ -1 +1 @@ -Subproject commit f0ddf02a94d0d0a4d2f408ce96bc44cfdd6f6229 +Subproject commit b33b5b2abc6de4b1f0707cac149afe56752ad06c diff --git a/packages/fleetops-engine b/packages/fleetops-engine index 9ea22f62..0c2a4bd1 160000 --- a/packages/fleetops-engine +++ b/packages/fleetops-engine @@ -1 +1 @@ -Subproject commit 9ea22f622ad2792e733e58627a4c46cfba835598 +Subproject commit 0c2a4bd122713788795635f5e81dbeada81d3f3e