build fpm image
parent
a6cbb0683c
commit
f7db2ef12f
|
@ -0,0 +1,71 @@
|
||||||
|
FROM docker.io/php:8.1-fpm-bullseye as builder
|
||||||
|
|
||||||
|
ARG DATE
|
||||||
|
|
||||||
|
ENV IP_PATCH=14cca91255bca69dec195112ce2fbd110e2406ca
|
||||||
|
ENV DISCOVERY_PATCH=f4a01bc97efeb259fd0c6e2016949c90675cc555
|
||||||
|
ENV GITHUB_PATCH=06bcf80133f6c212f1674d280974c669b4524283
|
||||||
|
ENV BEAGLE_PATCH=f45a489d5e45de21d648437880ef525a2e957b7b
|
||||||
|
ENV USERNAME_PATCH=737319bff8697263df19b9b4c0a2ee7cc8055476
|
||||||
|
|
||||||
|
RUN set -xe;\
|
||||||
|
apt-get update &&\
|
||||||
|
apt-get install --no-install-recommends -y git locales libcurl4-openssl-dev libzip-dev libicu-dev libxml2-dev libjpeg62-turbo-dev libpng-dev libmagickwand-dev libpq-dev libxpm-dev libwebp-dev &&\
|
||||||
|
apt-get clean all &&\
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN set -xe;\
|
||||||
|
docker-php-ext-configure mbstring --disable-mbregex &&\
|
||||||
|
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp --with-xpm &&\
|
||||||
|
docker-php-ext-install -j$(nproc) curl zip bcmath intl mbstring xml pcntl gd mysqli pdo_mysql pdo_pgsql opcache &&\
|
||||||
|
pecl install imagick &&\
|
||||||
|
pecl install redis &&\
|
||||||
|
docker-php-ext-enable imagick redis
|
||||||
|
RUN set -xe;\
|
||||||
|
curl https://raw.githubusercontent.com/composer/getcomposer.org/0a51b6fe383f7f61cf1d250c742ec655aa044c94/web/installer | php -- --quiet --2.2 &&\
|
||||||
|
mv composer.phar /usr/local/bin/composer
|
||||||
|
|
||||||
|
RUN set -xe;\
|
||||||
|
cd /var && rm -rf www &&\
|
||||||
|
git clone https://github.com/pixelfed/pixelfed.git www &&\
|
||||||
|
cd www &&\
|
||||||
|
curl -L https://github.com/hnrd/pixelfed/commit/${IP_PATCH}.patch | git apply &&\
|
||||||
|
curl -L https://github.com/hnrd/pixelfed/commit/${DISCOVERY_PATCH}.patch | git apply &&\
|
||||||
|
curl -L https://github.com/hnrd/pixelfed/commit/${GITHUB_PATCH}.patch | git apply &&\
|
||||||
|
curl -L https://github.com/hnrd/pixelfed/commit/${BEAGLE_PATCH}.patch | git apply &&\
|
||||||
|
curl -L https://github.com/hnrd/pixelfed/commit/${USERNAME_PATCH}.patch | git apply &&\
|
||||||
|
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 docker.io/php:8.1-fpm-bullseye
|
||||||
|
ARG DATE
|
||||||
|
|
||||||
|
COPY --from=builder /var/www /var/www
|
||||||
|
COPY entrypoint.fpm.sh /entrypoint.sh
|
||||||
|
COPY worker-entrypoint.sh /worker-entrypoint.sh
|
||||||
|
COPY websockets-entrypoint.sh /websockets-entrypoint.sh
|
||||||
|
COPY wait-for-db.php /wait-for-db.php
|
||||||
|
COPY --from=builder /usr/local/lib/php/extensions/no-debug-non-zts-20210902 /usr/local/lib/php/extensions/no-debug-non-zts-20210902
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d /usr/local/etc/php/conf.d
|
||||||
|
|
||||||
|
RUN set -xe;\
|
||||||
|
apt-get update &&\
|
||||||
|
apt-get install --no-install-recommends -y libzip4 libpq5 libmagickwand-6.q16-6 libxpm4 libwebp6 &&\
|
||||||
|
apt-get install --no-install-recommends -y optipng pngquant jpegoptim gifsicle ffmpeg locales gosu dumb-init &&\
|
||||||
|
apt-get clean all &&\
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN set -xe;\
|
||||||
|
# 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' "$PHP_INI_DIR"/php.ini* &&\
|
||||||
|
sed -i 's/^upload_max_filesize.*/upload_max_filesize = 100M/g' "$PHP_INI_DIR"/php.ini* &&\
|
||||||
|
mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
||||||
|
WORKDIR /var/www
|
||||||
|
VOLUME /var/www/storage /var/www/bootstrap
|
||||||
|
ENTRYPOINT /entrypoint.sh
|
||||||
|
|
||||||
|
LABEL build.date=$DATE
|
|
@ -18,18 +18,29 @@ pipeline {
|
||||||
sh "buildah login -u " + ZKNT_CRED_USR + " -p " + ZKNT_CRED_PSW + " reg.zknt.org"
|
sh "buildah login -u " + ZKNT_CRED_USR + " -p " + ZKNT_CRED_PSW + " reg.zknt.org"
|
||||||
def image = registry + '/' + repo + '/' + project
|
def image = registry + '/' + repo + '/' + project
|
||||||
sh "buildah bud -f Containerfile --build-arg DATE=$timeStamp -t pixelfed:test"
|
sh "buildah bud -f Containerfile --build-arg DATE=$timeStamp -t pixelfed:test"
|
||||||
|
sh "buildah bud -f Containerfile.fpm --build-arg DATE=$timeStamp -t pixelfed:fpm"
|
||||||
sh "buildah tag pixelfed:test reg.zknt.org/zknt/pixelfed:test"
|
sh "buildah tag pixelfed:test reg.zknt.org/zknt/pixelfed:test"
|
||||||
|
sh "buildah tag pixelfed:test reg.zknt.org/zknt/pixelfed:fpm"
|
||||||
sh "buildah push " + image + ':test'
|
sh "buildah push " + image + ':test'
|
||||||
|
sh "buildah push " + image + ':fpm'
|
||||||
}
|
}
|
||||||
script {
|
script {
|
||||||
sh "buildah login -u " + IO_CRED_USR+ " -p " + IO_CRED_PSW + " docker.io"
|
sh "buildah login -u " + IO_CRED_USR+ " -p " + IO_CRED_PSW + " docker.io"
|
||||||
sh "buildah tag pixelfed:test docker.io/zknt/pixelfed:test"
|
sh "buildah tag pixelfed:test docker.io/zknt/pixelfed:test"
|
||||||
|
sh "buildah tag pixelfed:fpm docker.io/zknt/pixelfed:fpm"
|
||||||
|
sh "buildah tag pixelfed:fpm docker.io/zknt/pixelfed:fpm-"+timeStamp
|
||||||
sh "buildah push docker.io/zknt/pixelfed:test"
|
sh "buildah push docker.io/zknt/pixelfed:test"
|
||||||
|
sh "buildah push docker.io/zknt/pixelfed:fpm"
|
||||||
|
sh "buildah push docker.io/zknt/pixelfed:fpm-"+timeStamp
|
||||||
}
|
}
|
||||||
script {
|
script {
|
||||||
sh "buildah login -u " + QUAY_CRED_USR+ " -p " + QUAY_CRED_PSW + " quay.io"
|
sh "buildah login -u " + QUAY_CRED_USR+ " -p " + QUAY_CRED_PSW + " quay.io"
|
||||||
sh "buildah tag pixelfed:test quay.io/zknt/pixelfed:test"
|
sh "buildah tag pixelfed:test quay.io/zknt/pixelfed:test"
|
||||||
|
sh "buildah tag pixelfed:fpm quay.io/zknt/pixelfed:fpm"
|
||||||
|
sh "buildah tag pixelfed:fpm quay.io/zknt/pixelfed:fpm-"+timeStamp
|
||||||
sh "buildah push quay.io/zknt/pixelfed:test"
|
sh "buildah push quay.io/zknt/pixelfed:test"
|
||||||
|
sh "buildah push quay.io/zknt/pixelfed:fpm"
|
||||||
|
sh "buildah push quay.io/zknt/pixelfed:fpm-"+timeStamp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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/
|
||||||
|
chown -R www-data:www-data storage/ bootstrap/
|
||||||
|
|
||||||
|
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 completed > storage/.docker.init
|
||||||
|
fi
|
||||||
|
|
||||||
|
gosu www-data php artisan storage:link
|
||||||
|
gosu www-data php artisan horizon:publish
|
||||||
|
gosu www-data php artisan config:cache
|
||||||
|
gosu www-data php artisan cache:clear
|
||||||
|
gosu www-data php artisan route:cache
|
||||||
|
gosu www-data php artisan view:cache
|
||||||
|
|
||||||
|
echo "++++ Check for needed migrations... ++++"
|
||||||
|
# check for migrations
|
||||||
|
gosu www-data php artisan migrate:status | grep No && migrations=yes || migrations=no
|
||||||
|
gosu www-data php artisan migrate:status | grep Pending && 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
|
||||||
|
|
||||||
|
dumb-init docker-php-entrypoint -F
|
Loading…
Reference in New Issue