diff --git a/Dockerfile b/Dockerfile index 8f6de506..0ced8009 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,50 +1,42 @@ +# add amd64 platform to support Mac M1 +FROM --platform=linux/amd64 shivammathur/node:latest-amd64 + ARG PHP_VERSION=8.1 -ARG PHP_TARGET=php:${PHP_VERSION}-cli - -FROM ${PHP_TARGET} - -ARG COMPOSER_TARGET=2.0.3 WORKDIR /var/www/html -LABEL org.opencontainers.image.source=https://github.com/stancl/tenancy \ - org.opencontainers.image.vendor="Samuel Ć tancl" \ - org.opencontainers.image.licenses="MIT" \ - org.opencontainers.image.title="PHP ${PHP_VERSION} with modules for laravel support" \ - org.opencontainers.image.description="PHP ${PHP_VERSION} with a set of php/os packages suitable for running Laravel apps" - # our default timezone and langauge ENV TZ=Europe/London ENV LANG=en_GB.UTF-8 -# Note: we only install reliable/core 1st-party php extensions here. -# If your app needs custom ones install them in the apps own -# Dockerfile _and pin the versions_! Eg: -# RUN pecl install memcached-2.2.0 && docker-php-ext-enable memcached +# install MYSSQL ODBC Driver +RUN apt-get update \ + && apt-get install -y gnupg2 \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update \ + && ACCEPT_EULA=Y apt-get install -y unixodbc-dev msodbcsql17 + +# set PHP version +RUN update-alternatives --set php /usr/bin/php$PHP_VERSION \ + && update-alternatives --set phar /usr/bin/phar$PHP_VERSION \ + && update-alternatives --set phar.phar /usr/bin/phar.phar$PHP_VERSION \ + && update-alternatives --set phpize /usr/bin/phpize$PHP_VERSION \ + && update-alternatives --set php-config /usr/bin/php-config$PHP_VERSION + +RUN apt-get update \ + && apt-get install -y --no-install-recommends libhiredis0.14 libjemalloc2 liblua5.1-0 lua-bitop lua-cjson redis redis-server redis-tools + +RUN pecl install redis-5.3.7 sqlsrv pdo_sqlsrv pcov \ + && printf "; priority=20\nextension=redis.so\n" > /etc/php/$PHP_VERSION/mods-available/redis.ini \ + && printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/$PHP_VERSION/mods-available/sqlsrv.ini \ + && printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/$PHP_VERSION/mods-available/pdo_sqlsrv.ini \ + && printf "; priority=40\nextension=pcov.so\n" > /etc/php/$PHP_VERSION/mods-available/pcov.ini \ + && phpenmod -v $PHP_VERSION redis sqlsrv pdo_sqlsrv pcov + +# install composer +COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer -# install some OS packages we need -RUN apt-get update -RUN apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev libgmp-dev libldap2-dev netcat curl sqlite3 libsqlite3-dev libpq-dev libzip-dev unzip vim-tiny gosu git - # install php extensions -RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \ - # && if [ "${PHP_VERSION}" = "7.4" ]; then docker-php-ext-configure gd --with-freetype --with-jpeg; else docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/; fi \ - && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql pdo_pgsql pdo_sqlite pgsql zip gmp bcmath pcntl ldap sysvmsg exif \ - # install the redis php extension - && pecl install redis-5.3.7 \ - && docker-php-ext-enable redis \ - # install the pcov extention - && pecl install pcov \ - && docker-php-ext-enable pcov \ - && echo "pcov.enabled = 1" > /usr/local/etc/php/conf.d/pcov.ini -# clear the apt cache -RUN rm -rf /var/lib/apt/lists/* \ - && rm -rf /var/lib/apt/lists/* \ - # install composer - && curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ - && curl -o /tmp/composer-setup.sig https://composer.github.io/installer.sig \ - && php -r "if (hash('SHA384', file_get_contents('/tmp/composer-setup.php')) !== trim(file_get_contents('/tmp/composer-setup.sig'))) { unlink('/tmp/composer-setup.php'); echo 'Invalid installer' . PHP_EOL; exit(1); }" \ - && php /tmp/composer-setup.php --version=${COMPOSER_TARGET} --no-ansi --install-dir=/usr/local/bin --filename=composer --snapshot \ - && rm -f /tmp/composer-setup.* # set the system timezone RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ && echo $TZ > /etc/timezone diff --git a/src/Database/Models/ImpersonationToken.php b/src/Database/Models/ImpersonationToken.php index 4aa63252..0de48060 100644 --- a/src/Database/Models/ImpersonationToken.php +++ b/src/Database/Models/ImpersonationToken.php @@ -26,8 +26,8 @@ class ImpersonationToken extends Model protected $primaryKey = 'token'; public $incrementing = false; protected $table = 'tenant_user_impersonation_tokens'; - protected $dates = [ - 'created_at', + protected $casts = [ + 'created_at' => 'datetime', ]; public static function boot() diff --git a/test b/test index 49535a7a..e064bbfe 100755 --- a/test +++ b/test @@ -1,3 +1,4 @@ #!/bin/bash +cat vendor/laravel/framework/src/Illuminate/Foundation/Application.php | grep 'const VERSION' docker-compose exec -T test vendor/bin/phpunit "$@"