diff --git a/chevereto.sh b/chevereto.sh new file mode 100644 index 0000000..6a2b933 --- /dev/null +++ b/chevereto.sh @@ -0,0 +1,47 @@ +set -e +DIR="/var/www" +WORKING_DIR="$DIR/html" +mkdir -p /chevereto && mkdir -p /chevereto/download && mkdir -p /chevereto/installer +cd /chevereto/download +curl -S -o installer.tar.gz -L "https://github.com/chevereto/installer/archive/${CHEVERETO_INSTALLER_TAG}.tar.gz" +tar -xvzf installer.tar.gz +mv -v installer-"${CHEVERETO_INSTALLER_TAG}"/* /chevereto/installer/ +cd /chevereto/installer +php installer.php -a download -s $CHEVERETO_SOFTWARE -t=$CHEVERETO_TAG -l=$CHEVERETO_LICENSE +php installer.php -a extract -s $CHEVERETO_SOFTWARE -f chevereto-pkg-*.zip -p $WORKING_DIR +mkdir -p $WORKING_DIR/app +set -eux +{ + echo " getenv('CHEVERETO_ASSET_STORAGE_ACCOUNT_ID')," + echo " 'asset_storage_account_name' => getenv('CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME')," + echo " 'asset_storage_bucket' => getenv('CHEVERETO_ASSET_STORAGE_BUCKET')," + echo " 'asset_storage_key' => getenv('CHEVERETO_ASSET_STORAGE_KEY')," + echo " 'asset_storage_name' => getenv('CHEVERETO_ASSET_STORAGE_NAME')," + echo " 'asset_storage_region' => getenv('CHEVERETO_ASSET_STORAGE_REGION')," + echo " 'asset_storage_secret' => getenv('CHEVERETO_ASSET_STORAGE_SECRET')," + echo " 'asset_storage_server' => getenv('CHEVERETO_ASSET_STORAGE_SERVER')," + echo " 'asset_storage_service' => getenv('CHEVERETO_ASSET_STORAGE_SERVICE')," + echo " 'asset_storage_type' => getenv('CHEVERETO_ASSET_STORAGE_TYPE')," + echo " 'asset_storage_url' => getenv('CHEVERETO_ASSET_STORAGE_URL')," + echo " 'db_driver' => getenv('CHEVERETO_DB_DRIVER')," + echo " 'db_host' => getenv('CHEVERETO_DB_HOST')," + echo " 'db_name' => getenv('CHEVERETO_DB_NAME')," + echo " 'db_pass' => getenv('CHEVERETO_DB_PASS')," + echo " 'db_pdo_attrs' => getenv('CHEVERETO_DB_PDO_ATTRS')," + echo " 'db_port' => (int) getenv('CHEVERETO_DB_PORT')," + echo " 'db_table_prefix' => getenv('CHEVERETO_DB_TABLE_PREFIX')," + echo " 'db_user' => getenv('CHEVERETO_DB_USER')," + echo " 'debug_level' => (int) getenv('CHEVERETO_DEBUG_LEVEL')," + echo " 'disable_php_pages' => (bool) getenv('CHEVERETO_DISABLE_PHP_PAGES')," + echo " 'hostname_path' => getenv('CHEVERETO_HOSTNAME_PATH')," + echo " 'hostname' => getenv('CHEVERETO_HOSTNAME')," + echo " 'https' => (bool) getenv('CHEVERETO_HTTPS')," + echo " 'image_formats_available' => explode(',', getenv('CHEVERETO_IMAGE_FORMATS_AVAILABLE'))," + echo " 'session.save_handler' => getenv('CHEVERETO_SESSION_SAVE_HANDLER')," + echo " 'session.save_path' => getenv('CHEVERETO_SESSION_SAVE_PATH')," + echo "];" +} >$WORKING_DIR/app/settings.php +chown www-data: $WORKING_DIR -R +cd $WORKING_DIR diff --git a/httpd-php.Dockerfile b/httpd-php.Dockerfile new file mode 100644 index 0000000..4f259d7 --- /dev/null +++ b/httpd-php.Dockerfile @@ -0,0 +1,88 @@ +FROM php:7.4-apache + +RUN apt-get update && apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libwebp-dev \ + libgd-dev \ + libzip-dev \ + zip \ + imagemagick libmagickwand-dev --no-install-recommends \ + && docker-php-ext-configure gd \ + --with-freetype=/usr/include/ \ + --with-jpeg=/usr/include/ \ + --with-webp=/usr/include/ \ + && docker-php-ext-configure opcache --enable-opcache \ + && docker-php-ext-install -j$(nproc) exif gd pdo_mysql zip opcache \ + && pecl install imagick \ + && docker-php-ext-enable imagick opcache \ + && php -m \ + && a2enmod rewrite + +ARG CHEVERETO_SOFTWARE=chevereto +ARG CHEVERETO_TAG=3.20.1 +ARG CHEVERETO_INSTALLER_TAG=2.2.2 +ARG CHEVERETO_SERVICING=docker +ARG CHEVERETO_LICENSE + +RUN test -n "$CHEVERETO_LICENSE" + +ENV CHEVERETO_SOFTWARE=$CHEVERETO_SOFTWARE \ + CHEVERETO_TAG=$CHEVERETO_TAG \ + CHEVERETO_INSTALLER_TAG=$CHEVERETO_INSTALLER_TAG \ + CHEVERETO_SERVICING=$CHEVERETO_SERVICING \ + CHEVERETO_LICENSE=$CHEVERETO_LICENSE \ + CHEVERETO_DB_HOST=mariadb \ + CHEVERETO_DB_USER=chevereto \ + CHEVERETO_DB_PASS=user_database_password \ + CHEVERETO_DB_NAME=chevereto \ + CHEVERETO_DB_TABLE_PREFIX=chv_ \ + CHEVERETO_DB_PORT=3306 \ + CHEVERETO_DB_DRIVER=mysql \ + CHEVERETO_DB_PDO_ATTRS=[] \ + CHEVERETO_DEBUG_LEVEL=1 \ + CHEVERETO_ERROR_LOG= \ + CHEVERETO_IMAGE_FORMATS_AVAILABLE=JPG,PNG,BMP,GIF,WEBP \ + CHEVERETO_HOSTNAME=localhost \ + CHEVERETO_HOSTNAME_PATH=/ \ + CHEVERETO_SESSION_SAVE_HANDLER=files \ + CHEVERETO_SESSION_SAVE_PATH=/tmp \ + CHEVERETO_UPLOAD_MAX_FILESIZE=25M \ + CHEVERETO_POST_MAX_SIZE=25M \ + CHEVERETO_MAX_EXECUTION_TIME=30 \ + CHEVERETO_MEMORY_LIMIT=512M \ + CHEVERETO_ASSET_STORAGE_NAME=assets \ + CHEVERETO_ASSET_STORAGE_TYPE=local \ + CHEVERETO_ASSET_STORAGE_KEY= \ + CHEVERETO_ASSET_STORAGE_SECRET= \ + CHEVERETO_ASSET_STORAGE_BUCKET= \ + CHEVERETO_ASSET_STORAGE_URL= \ + CHEVERETO_ASSET_STORAGE_REGION= \ + CHEVERETO_ASSET_STORAGE_SERVER= \ + CHEVERETO_ASSET_STORAGE_SERVICE= \ + CHEVERETO_ASSET_STORAGE_ACCOUNT_ID= \ + CHEVERETO_ASSET_STORAGE_ACCOUNT_NAME= + +RUN set -eux; \ + { \ + echo "log_errors = On"; \ + echo "error_log = /dev/stderr"; \ + echo "upload_max_filesize = \${CHEVERETO_UPLOAD_MAX_FILESIZE}"; \ + echo "post_max_size = \${CHEVERETO_POST_MAX_SIZE}"; \ + echo "max_execution_time = \${CHEVERETO_MAX_EXECUTION_TIME}"; \ + echo "memory_limit = \${CHEVERETO_MEMORY_LIMIT}"; \ + } > $PHP_INI_DIR/conf.d/php.ini + +RUN mkdir -p /var/www/html/importing && \ + mkdir -p /var/www/html/importing/no-parse && \ + mkdir -p /var/www/html/importing/parse-album && \ + mkdir -p /var/www/html/importing/parse-users + +VOLUME /var/www/html/images +VOLUME /var/www/html/importing/no-parse +VOLUME /var/www/html/importing/parse-albums +VOLUME /var/www/html/importing/parse-users + +COPY chevereto.sh /chevereto.sh +RUN chmod +x /chevereto.sh && /chevereto.sh \ No newline at end of file