diff --git a/Dockerfile b/Dockerfile index e4cfe4d..ba3519a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,10 @@ FROM php:8.2-apache +MAINTAINER axeloz -RUN apt-get update -y && apt-get install -y libmcrypt-dev libonig-dev build-essential libxml2-dev libzip-dev gnupg unzip curl wget findutils tar grep nano +# INSTALLING SYSTEM DEPENDENCIES +RUN apt-get update -y && apt-get install -y libmcrypt-dev libonig-dev build-essential libxml2-dev libzip-dev gnupg unzip curl wget findutils tar grep nano cron + +# INSTALLING PHP DEPENDENCIES RUN docker-php-ext-install \ bcmath \ ctype \ @@ -10,34 +14,48 @@ RUN docker-php-ext-install \ xml \ zip +# ADDING VHOST +COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf +RUN a2enmod rewrite + +# ADDING COMPOSER +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +# INSTALLING YARN RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list RUN apt-get update && apt-get install -y yarn +# SETTING WORKDIR AND ENV ENV WEB_DOCUMENT_ROOT /app/public ENV APP_ENV production - WORKDIR /app + +# DOWNLOADING LATEST PACKAGE OF FILESHARING RUN curl -stdout "https://api.github.com/repos/axeloz/filesharing/releases/latest" | grep -E -o '[^"]+tarball[^"]+' | xargs wget -O latest.tar -q RUN tar zxvf latest.tar --strip-components=1 +# INSTALLING THE CRONTAB +RUN { echo "* * * * * php /app/artisan schedule:run >> /dev/null 2>&1"; } | crontab - -COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer - +# INSTALLING COMPOSER DEPENDENCIES RUN composer install --no-interaction --optimize-autoloader --no-dev RUN chown -R www-data:www-data /app -RUN a2enmod rewrite +# SETUP OF FILESHARING RUN cp -n .env.example .env RUN php artisan key:generate RUN php artisan config:cache RUN php artisan route:cache RUN php artisan view:cache +RUN php artisan orbit:clear +# INSTALLING YARN DEPENDENCIES AND BUILDING RUN yarn RUN yarn build +# EXPOSING VOLUME VOLUME /app/storage +# EXPOSING PORT EXPOSE 80