mirror of
https://github.com/php/frankenphp.git
synced 2026-03-24 09:02:11 +01:00
* add ./create-rpm.sh file to build a "frankenphp" rpm package * also build a deb package * renamed to build-packages * linter... * add depends * linter again? * linter number 3 * linter number 4 * set default locations for ini file, conf files and extensions * set unified path for modules that should be ok on all dists * add default content into "package" folder * make file executable * worker is in public folder * what on earth did I do x) * use same FRANKENPHP_VERSION and make sure to let pr's run the rpm generation too (version 0.0.0) to see issues * install ruby, fpm and rpm-build * move to after changing base urls because it would fail with packages not found * ruby 3 build needs gcc 10 * rpm-build is necessary too... * and I forgot to link the package folder * create directories if they don't exist * copy out all frankenphp* files? * lint fix * only copy frankenphp-* files * only copy frankenphp-* files * the .deb file is name frankenphp_1.5.0... - create output folder instead and upload all things inside that will simplify things when later adding xdebug.so and ffi.so * update the last two steps to use the gh-output directory * add post install script to set frankenphp able to bind to port 80 for non-root users * dnf over yum, I think the yum alias was removed in RH 9.5 * newlines * newlines * add text what missing libcap means * copy php.ini-production from php-src, linter, update ruby version * move Caddyfile to /etc/frankenphp/Caddyfile * linter * fix a copy and paste error * better describe fallback to 0.0.0 * linter * copy installation scripts from official caddy packages, change user to frankenphp too * bombombom * make files executable * tabs * linter * linter again * use empty directory for three different destinations instead of keeping three empty local directories * caddy says the file is incorrectly formatted without these spaces * remove wildcard matcher from root directive * Apply suggestions from code review commit suggested changes to preinstall/postinstall scripts Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * Update dev.Dockerfile Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * remove misleading comment * update documentation for paths * update documentation for paths some more * fix musl opcache-jit issue * markdown linter * the damn tab * Apply suggestions from code review Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * drop dev.Dockerfile php location from config.md * add php config note to CONTRIBUTING.md * dashes instead of asterisks in chinese docs * fix package building * create frankenphp user in case it doesn't exist for deb packages * create users if they don't exist, delete them again if they didn't exist * satisfy linter * create the user with the same commands as the postinst/preinstall scripts * Removes toolchain requirements. * trigger * Removes explicit calls to go get * trigger * setcap by default * simplify example project * bring page more in line with the caddy / apache / nginx default page * update to html 5 * oopsies * revert style to original * remove https:// (caddy uses http:// on RHEL, :80 on Debian) --------- Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> Co-authored-by: Alliballibaba <alliballibaba@gmail.com>
90 lines
2.1 KiB
Docker
90 lines
2.1 KiB
Docker
# syntax=docker/dockerfile:1
|
|
#checkov:skip=CKV_DOCKER_2
|
|
#checkov:skip=CKV_DOCKER_3
|
|
FROM golang:1.24
|
|
|
|
ENV GOTOOLCHAIN=local
|
|
ENV CFLAGS="-ggdb3"
|
|
ENV PHPIZE_DEPS="\
|
|
autoconf \
|
|
dpkg-dev \
|
|
file \
|
|
g++ \
|
|
gcc \
|
|
libc-dev \
|
|
make \
|
|
pkg-config \
|
|
re2c"
|
|
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
# hadolint ignore=DL3009
|
|
RUN apt-get update && \
|
|
apt-get -y --no-install-recommends install \
|
|
$PHPIZE_DEPS \
|
|
libargon2-dev \
|
|
libbrotli-dev \
|
|
libcurl4-openssl-dev \
|
|
libonig-dev \
|
|
libreadline-dev \
|
|
libsodium-dev \
|
|
libsqlite3-dev \
|
|
libssl-dev \
|
|
libxml2-dev \
|
|
zlib1g-dev \
|
|
bison \
|
|
libnss3-tools \
|
|
# Dev tools \
|
|
git \
|
|
clang \
|
|
cmake \
|
|
llvm \
|
|
gdb \
|
|
valgrind \
|
|
neovim \
|
|
zsh \
|
|
libtool-bin && \
|
|
echo 'set auto-load safe-path /' > /root/.gdbinit && \
|
|
echo '* soft core unlimited' >> /etc/security/limits.conf \
|
|
&& \
|
|
apt-get clean
|
|
|
|
WORKDIR /usr/local/src/php
|
|
RUN git clone --branch=PHP-8.4 https://github.com/php/php-src.git . && \
|
|
# --enable-embed is only necessary to generate libphp.so, we don't use this SAPI directly
|
|
./buildconf --force && \
|
|
EXTENSION_DIR=/usr/lib/frankenphp/modules ./configure \
|
|
--enable-embed \
|
|
--enable-zts \
|
|
--disable-zend-signals \
|
|
--enable-zend-max-execution-timers \
|
|
--with-config-file-path=/etc/frankenphp/php.ini \
|
|
--with-config-file-scan-dir=/etc/frankenphp/php.d \
|
|
--enable-debug && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
ldconfig && \
|
|
mkdir -p /etc/frankenphp/php.d && \
|
|
cp php.ini-development /etc/frankenphp/php.ini && \
|
|
echo "zend_extension=opcache.so" >> /etc/frankenphp/php.ini && \
|
|
echo "opcache.enable=1" >> /etcfrankenphp/php.ini && \
|
|
php --version
|
|
|
|
# Install e-dant/watcher (necessary for file watching)
|
|
WORKDIR /usr/local/src/watcher
|
|
RUN git clone https://github.com/e-dant/watcher . && \
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && \
|
|
cmake --build build/ && \
|
|
cmake --install build && \
|
|
cp build/libwatcher-c.so /usr/local/lib/libwatcher-c.so && \
|
|
ldconfig
|
|
|
|
WORKDIR /go/src/app
|
|
COPY . .
|
|
|
|
WORKDIR /go/src/app/caddy/frankenphp
|
|
RUN go build -buildvcs=false -tags 'nobadger,nomysql,nopgx'
|
|
|
|
WORKDIR /go/src/app
|
|
CMD [ "zsh" ]
|