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