FROM alpine:3.23 # Apache + PHP RUN apk add --no-cache \ apache2 \ php83 \ php83-common \ php83-apache2 \ php83-curl \ php83-ldap \ php83-mysqli \ php83-gd \ php83-xml \ php83-mbstring \ php83-zip \ php83-ctype \ php83-tokenizer \ php83-pdo_mysql \ php83-openssl \ php83-bcmath \ php83-phar \ php83-json \ php83-iconv \ php83-fileinfo \ php83-simplexml \ php83-session \ php83-dom \ php83-xmlwriter \ php83-xmlreader \ php83-sodium \ php83-redis \ php83-pecl-memcached \ php83-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/php83/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 --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