chore: init
Signed-off-by: Denis Evers <denis-ev@users.noreply.github.com>
This commit is contained in:
commit
2f71781aaa
|
@ -0,0 +1,34 @@
|
|||
FROM php:7.4-apache-bullseye as builder
|
||||
|
||||
ARG DATE
|
||||
|
||||
ENV PHPVER=7.4
|
||||
|
||||
RUN set -xe;\
|
||||
apt-install git unzip php${PHPVER}-curl php${PHPVER}-zip php${PHPVER}-bcmath php${PHPVER}-intl php${PHPVER}-mbstring php${PHPVER}-xml composer &&\
|
||||
cd /var && rm -rf www &&\
|
||||
git clone https://github.com/pixelfed/pixelfed.git www &&\
|
||||
cd www &&\
|
||||
composer require beyondcode/laravel-self-diagnosis &&\
|
||||
composer install --prefer-dist --no-interaction --no-ansi --no-dev --optimize-autoloader &&\
|
||||
ln -s public html &&\
|
||||
chown -R www-data:www-data /var/www &&\
|
||||
cp -r storage storage.skel &&\
|
||||
rm -rf .git tests contrib CHANGELOG.md LICENSE .circleci .dependabot .github CODE_OF_CONDUCT.md .env.docker CONTRIBUTING.md README.md docker-compose.yml .env.testing phpunit.xml .env.example .gitignore .editorconfig .gitattributes .dockerignore
|
||||
|
||||
FROM php:7.4-apache-bullseye
|
||||
ENV PHPVER=7.4
|
||||
COPY --from=builder /var/www /var/www
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY worker-entrypoint.sh /worker-entrypoint.sh
|
||||
COPY wait-for-db.php /wait-for-db.php
|
||||
RUN apt-install php${PHPVER}-curl php${PHPVER}-zip php${PHPVER}-bcmath php${PHPVER}-intl php${PHPVER}-mbstring php${PHPVER}-xml optipng pngquant jpegoptim gifsicle ffmpeg php${PHPVER}-imagick php${PHPVER}-gd php${PHPVER}-redis php${PHPVER}-mysql php${PHPVER}-pgsql &&\
|
||||
a2enmod rewrite &&\
|
||||
sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf &&\
|
||||
sed -i 's/^post_max_size.*/post_max_size = 100M/g' /etc/php/${PHPVER}/apache2/php.ini &&\
|
||||
sed -i 's/^upload_max_filesize.*/upload_max_filesize = 100M/g' /etc/php/${PHPVER}/apache2/php.ini
|
||||
WORKDIR /var/www
|
||||
VOLUME /var/www/storage /var/www/bootstrap
|
||||
ENTRYPOINT /entrypoint.sh
|
||||
|
||||
LABEL build.date=$DATE
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env bash
|
||||
set -xeo pipefail
|
||||
|
||||
if [ ! -z $FORCE_HTTPS ]
|
||||
then
|
||||
sed -i 's#</VirtualHost#SetEnv HTTPS on\n</VirtualHost#' /etc/apache2/sites-enabled/000-default.conf
|
||||
fi
|
||||
|
||||
cp -r storage.skel/* storage/
|
||||
|
||||
php /wait-for-db.php
|
||||
|
||||
if [[ ! -e storage/.docker.init ]]
|
||||
then
|
||||
echo "Fresh installation, initializing database..."
|
||||
gosu www-data php artisan key:generate
|
||||
gosu www-data php artisan migrate:fresh --force
|
||||
gosu www-data php artisan passport:keys
|
||||
echo done > storage/.docker.init
|
||||
fi
|
||||
|
||||
gosu www-data php artisan storage:link
|
||||
gosu www-data php artisan horizon:publish
|
||||
gosu www-data php artisan cache:clear
|
||||
gosu www-data php artisan route:cache
|
||||
gosu www-data php artisan view:cache
|
||||
gosu www-data php artisan config:cache
|
||||
|
||||
echo "++++ Check for needed migrations... ++++"
|
||||
# check for migrations
|
||||
gosu www-data php artisan migrate:status | grep No && migrations=yes || migrations=no
|
||||
if [ $migrations = "yes" ];
|
||||
then
|
||||
gosu www-data php artisan migrate --force
|
||||
fi
|
||||
|
||||
# create instance actor
|
||||
gosu www-data php artisan instance:actor
|
||||
|
||||
echo "++++ Start apache... ++++"
|
||||
source /etc/apache2/envvars
|
||||
/usr/local/sbin/dumb-init apache2 -DFOREGROUND
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
function connect()
|
||||
{
|
||||
$connection = getenv('DB_CONNECTION');
|
||||
$host = getenv('DB_HOST');
|
||||
$username = getenv('DB_USERNAME');
|
||||
$password = getenv('DB_PASSWORD');
|
||||
$database = getenv('DB_DATABASE');
|
||||
$port = getenv('DB_PORT');
|
||||
if ($connection === 'mysql') {
|
||||
return mysqli_connect($host, $username, $password, $database, $port);
|
||||
}
|
||||
if ($connection === 'pgsql') {
|
||||
return pg_connect('host=' . $host . ' port=' . $port . ' dbname=' . $database . ' user=' . $username . ' password=' . $password);
|
||||
}
|
||||
throw new Exception('unsupported connection type ' . $connection);
|
||||
}
|
||||
|
||||
$conn = connect();
|
||||
|
||||
$counter = 10;
|
||||
$count = 1;
|
||||
while (!$conn) {
|
||||
echo("Waiting for Database... $count / $counter\n");
|
||||
sleep(2);
|
||||
$conn = connect();
|
||||
$count++;
|
||||
if ($count == $counter) {
|
||||
echo("Database did not respond after $counter tries, giving up\n");
|
||||
die(1);
|
||||
}
|
||||
}
|
||||
|
||||
echo "Database is up\n";
|
||||
?>
|
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
set -xeo pipefail
|
||||
|
||||
php /wait-for-db.php
|
||||
|
||||
if [[ ! -e storage/.docker.init ]];
|
||||
then
|
||||
echo "Database is not initialized yet, exiting..."
|
||||
sleep 5
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gosu www-data php artisan migrate:status | grep No && migrations=yes || migrations=no
|
||||
if [ $migrations = "yes" ];
|
||||
then
|
||||
echo "Database needs migrations, exiting..."
|
||||
sleep 5
|
||||
exit 1
|
||||
fi
|
||||
|
||||
gosu www-data php artisan horizon
|
Loading…
Reference in New Issue