FROM alpine:3.19 # Apache + PHP RUN apk add --no-cache \ apache2 \ php82 \ php82-common \ php82-apache2 \ php82-curl \ php82-ldap \ php82-mysqli \ php82-gd \ php82-xml \ php82-mbstring \ php82-zip \ php82-ctype \ php82-tokenizer \ php82-pdo_mysql \ php82-openssl \ php82-bcmath \ php82-phar \ php82-json \ php82-iconv \ php82-fileinfo \ php82-simplexml \ php82-session \ php82-dom \ php82-xmlwriter \ php82-xmlreader \ php82-sodium \ php82-redis \ php82-pecl-memcached \ php82-exif \ curl \ wget \ vim \ git \ mysql-client \ tini COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf # Where apache's PID lives RUN mkdir -p /run/apache2 && chown apache:apache /run/apache2 RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php82/php.ini COPY docker/000-default-2.4.conf /etc/apache2/conf.d/default.conf # Enable mod_rewrite RUN sed -i '/LoadModule rewrite_module/s/^#//g' /etc/apache2/httpd.conf COPY . /var/www/html WORKDIR /var/www/html COPY docker/docker.env /var/www/html/.env RUN chown -R apache:apache /var/www/html RUN \ rm -r "/var/www/html/storage/private_uploads" \ && mkdir -p "/var/lib/snipeit/data/private_uploads" && ln -fs "/var/lib/snipeit/data/private_uploads" "/var/www/html/storage/private_uploads" \ && rm -rf "/var/www/html/public/uploads" \ && mkdir -p "/var/lib/snipeit/data/uploads" && ln -fs "/var/lib/snipeit/data/uploads" "/var/www/html/public/uploads" \ && mkdir -p "/var/lib/snipeit/dumps" && rm -r "/var/www/html/storage/app/backups" && ln -fs "/var/lib/snipeit/dumps" "/var/www/html/storage/app/backups" \ && mkdir -p "/var/lib/snipeit/keys" && ln -fs "/var/lib/snipeit/keys/oauth-private.key" "/var/www/html/storage/oauth-private.key" \ && ln -fs "/var/lib/snipeit/keys/oauth-public.key" "/var/www/html/storage/oauth-public.key" \ && chown -hR apache "/var/www/html/storage/" \ && chown -R apache "/var/lib/snipeit" # Install composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN mkdir -p /var/www/.composer && chown apache /var/www/.composer # Install dependencies USER apache RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html USER root VOLUME ["/var/lib/snipeit"] # Startup script COPY docker/startup_alpine.sh /startup.sh RUN chmod +x /startup.sh ENTRYPOINT ["/sbin/tini", "--"] CMD ["/startup.sh"] EXPOSE 80