ampache/ampache

View on GitHub
docker/Dockerfilephp82

Summary

Maintainability
Test Coverage
FROM debian:stable
LABEL maintainer="lachlan-00"

ENV DEBIAN_FRONTEND=noninteractive

RUN     sh -c 'echo "Types: deb\n# http://snapshot.debian.org/archive/debian/20230612T000000Z\nURIs: http://deb.debian.org/debian\nSuites: stable stable-updates\nComponents: main contrib non-free\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\n# http://snapshot.debian.org/archive/debian-security/20230612T000000Z\nURIs: http://deb.debian.org/debian-security\nSuites: stable-security\nComponents: main\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n" > /etc/apt/sources.list.d/debian.sources' \
    &&  apt-get -q -q update \
    &&  apt-get -q -q -y install --no-install-recommends wget lsb-release ca-certificates curl software-properties-common libdvd-pkg \
    &&  curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg \
    &&  sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php2.list' \
    &&  apt-get update \
    &&  apt-get -q -q -y install --no-install-recommends \
          apache2 \
          build-essential \
          cron \
          ffmpeg \
          flac \
          git \
          gosu \
          inotify-tools \
          lame \
          libavcodec-extra \
          libev-libevent-dev \
          libicu-dev \
          libfaac-dev \
          libmp3lame-dev \
          libtheora-dev \
          libvorbis-dev \
          libvpx-dev \
          locales \
          logrotate \
          make \
          p7zip-full \
          php8.2 \
          php8.2-curl \
          php8.2-dev \
          php8.2-gd \
          php8.2-intl \
          php8.2-ldap \
          php8.2-mysql \
          php8.2-xml \
          php8.2-zip \
          php-pear \
          pwgen \
          supervisor \
          vorbis-tools \
          zip \
          unzip \
    &&  update-alternatives --set php /usr/bin/php8.2 \
    &&  update-alternatives --set phpize /usr/bin/phpize8.2 \
    &&  update-alternatives --set php-config /usr/bin/php-config8.2 \
    &&  phpenmod -v 8.2 xml \
    &&  rm -rf /var/www/html/* /etc/apache2/sites-enabled/* /var/lib/apt/lists/* \
    &&  mkdir -p /var/log/ampache \
    &&  chown -R www-data:www-data /var/log/ampache \
    &&  chmod 775 /var/log/ampache \
    &&  chown -R www-data:www-data /media \
    &&  chmod -R 775 /media \
    &&  chown -R www-data:www-data /var/www \
    &&  chmod -R 775 /var/www \
    &&  ln -s /etc/apache2/sites-available/001-ampache.conf /etc/apache2/sites-enabled/ \
    &&  a2enmod rewrite \
    &&  sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
    &&  locale-gen \
    &&  apt-get -qq purge \
          libdvd-pkg \
          lsb-release \
          software-properties-common \
          unzip \
    &&  apt-get -qq autoremove \
    &&  pecl install xdebug \
    &&  echo "zend_extension=$(find /usr/lib/php/ -name xdebug.so)" > /etc/php/8.2/apache2/conf.d/xdebug.ini \
    &&  echo "xdebug.remote_enable=on" >> /etc/php/8.2/apache2/conf.d/xdebug.ini \
    &&  echo "xdebug.remote_autostart=off" >> /etc/php/8.2/apache2/conf.d/xdebug.ini \
    &&  wget -q -O /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar \
    &&  chmod +x /usr/local/bin/composer

VOLUME ["/var/log/ampache", "/var/www/html"]
EXPOSE 80

COPY docker/data/bin/apache2.sh docker/data/bin/run.sh docker/data/bin/composer.sh /usr/local/bin/
COPY docker/data/sites-enabled/001-ampache.conf /etc/apache2/sites-available/
COPY docker/data/conf.d/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

RUN  chmod +x /usr/local/bin/*.sh

CMD ["run.sh"]