frankenphp icon indicating copy to clipboard operation
frankenphp copied to clipboard

Question: how to build a standalone frankenphp binary with Caddy cache-handler

Open laurent-bientz opened this issue 1 year ago • 4 comments

Hello,

On production we're currently using the frankenphp standalone binaries with the Api Platform distribution.

Unfortunately (see https://github.com/dunglas/frankenphp/issues/956#issuecomment-2271581693), there is no frankenphp binaries distributed with HTTP cache into Caddy, no problem with that, @dunglas and @darkweak explained well why)

On local / development environment, we found a way to build a frankenphp binary with HTTP cache on Docker (thanks to xcaddy build, see https://github.com/dunglas/frankenphp/issues/976#issuecomment-2296049125)

FROM dunglas/frankenphp:latest-builder AS builder
COPY --from=caddy:builder /usr/bin/xcaddy /usr/bin/xcaddy

RUN apt-get update && apt-get install --no-install-recommends -y \
    git

ENV CGO_ENABLED=1 XCADDY_SETCAP=1 XCADDY_GO_BUILD_FLAGS="-ldflags \"-w -s -extldflags '-Wl,-z,stack-size=0x80000'\""
RUN xcaddy build \
    --output /usr/local/bin/frankenphp \
    --with github.com/dunglas/frankenphp=./ \
    --with github.com/dunglas/frankenphp/caddy=./caddy/ \
    --with github.com/dunglas/mercure/caddy \
    --with github.com/dunglas/vulcain/caddy \
    --with github.com/dunglas/caddy-cbrotli \
    --with github.com/darkweak/souin/plugins/caddy@65cb24114d76a7de3f4e8c7b8ef7df3efd028899 \
    --with github.com/darkweak/souin@65cb24114d76a7de3f4e8c7b8ef7df3efd028899 \
    --with github.com/darkweak/storages/otter/caddy

FROM dunglas/frankenphp:latest AS frankenphp_upstream
COPY --from=builder --link /usr/local/bin/frankenphp /usr/local/bin/frankenphp

It works well on the Symfony prod env under Docker but we're not using Docker on our production server 😁

Naively, I try to extract the binary built on Docker (docker cp {containerId}:/usr/local/bin/frankenphp frankenphp-http-cache), then transferring the executable on my production server (Ubuntu 20 LTS) and trying to use it 🙄

sudo +x frankenphp-http-cache
./frankenphp-http-cache -v
> ./frankenphp-http-cache: error while loading shared libraries: libphp.so: cannot open shared object file: No such file or directory

You'll tell me "it's not the same architecture, Debian versus Ubuntu, etc." and you're probably right 🙂

So my question is simple: how can I build and use a standalone frankenphp binary with HTTP cache packaged in the Caddy web server?

I read the chapter Create a Static Build in the doc but I see nothing to add extra caddy plugins (Souin) on the fly with the build-static.sh but maybe I'm wrong, I'm really new into the Go/Caddy ecosystems 😑

I also see these lines, I guess I can add (without much conviction) the Caddy plugins (darkweak/souin, darkweak/souin/plugins/caddy and darkweak/storages/otter/caddy) to this list and try to use the static-builder provided with the docker image?

If there is a a simpler method, any help would be welcome 👍

Thanks a lot

laurent-bientz avatar Aug 19 '24 16:08 laurent-bientz

Note that I tried to use the build-static.sh without changing anything:

git clone https://github.com/dunglas/frankenphp
cd frankenphp
./build-static.sh

it fails after a long time running:

/bin/bash /home/www/franken-builder/dist/static-php-cli/source/php-src/libtool --silent --preserve-dup-deps --tag=CC --mode=compile x86_64-linux-musl-gcc -Iext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/main -I/home/www/franken-builder/dist/static-php-cli/source/php-src -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/date/lib -I/home/www/franken-builder/dist/static-php-cli/buildroot/include/libxml2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/libpng16 -I/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/webp -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/freetype2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/ImageMagick-7 -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl/mbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxwriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libexpat/expat/lib -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxio/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/TSRM -I/home/www/franken-builder/dist/static-php-cli/source/php-src/Zend  -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -D_GNU_SOURCE -D_REENTRANT -pthread  -fno-common -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -ffp-contract=off -fvisibility=hidden -pthread -Wimplicit-fallthrough=1 -DZTS -DZEND_MAX_EXECUTION_TIMERS  -g -Os -fno-ident -fPIE -Wno-strict-prototypes -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd -c /home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd/gd_ss.c -o ext/gd/libgd/gd_ss.lo  -MMD -MF ext/gd/libgd/gd_ss.dep -MT ext/gd/libgd/gd_ss.lo
/bin/bash /home/www/franken-builder/dist/static-php-cli/source/php-src/libtool --silent --preserve-dup-deps --tag=CC --mode=compile x86_64-linux-musl-gcc -Iext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/main -I/home/www/franken-builder/dist/static-php-cli/source/php-src -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/date/lib -I/home/www/franken-builder/dist/static-php-cli/buildroot/include/libxml2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/libpng16 -I/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/webp -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/freetype2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/ImageMagick-7 -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl/mbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxwriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libexpat/expat/lib -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxio/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/TSRM -I/home/www/franken-builder/dist/static-php-cli/source/php-src/Zend  -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -D_GNU_SOURCE -D_REENTRANT -pthread  -fno-common -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -ffp-contract=off -fvisibility=hidden -pthread -Wimplicit-fallthrough=1 -DZTS -DZEND_MAX_EXECUTION_TIMERS  -g -Os -fno-ident -fPIE -Wno-strict-prototypes -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd -c /home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd/gd_io_ss.c -o ext/gd/libgd/gd_io_ss.lo  -MMD -MF ext/gd/libgd/gd_io_ss.dep -MT ext/gd/libgd/gd_io_ss.lo
x86_64-linux-musl-gcc: fatal error: Killed signal terminated program cc1
compilation terminated.
make: *** [Makefile:944: ext/fileinfo/libmagic/apprentice.lo] Error 1
make: *** Waiting for unfinished jobs....
[18:11:06] [ERRO] Uncaught SPC\exception\RuntimeException: Command run failed with code[2]: cd '/home/www/franken-builder/dist/static-php-cli/source/php-src' && make -j2 INSTALL_ROOT=/home/www/franken-builder/dist/static-php-cli/buildroot EXTRA_CFLAGS='-g -Os -fno-ident -fPIE' EXTRA_LIBS='/home/www/franken-builder/dist/static-php-cli/buildroot/lib/libyaml.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libtidy.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/liblz4.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsqlite3.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpq.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpgport.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpgcommon.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libreadline.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libonig.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/liblber.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libldap.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsodium.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagick++-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagickWand-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagickCore-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libzip.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libtiff.a  /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libncurses.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libgmp.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libfreetype.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libjpeg.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libturbojpeg.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebp.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpdecoder.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpdemux.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpmux.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsharpyuv.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libavif.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpng16.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcurl.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libzstd.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libxml2.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicui18n.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicuio.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicuuc.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicudata.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libiconv.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcharset.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlidec.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlienc.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlicommon.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libssh2.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libssl.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcrypto.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libz.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbz2.a -lstdc++  -lgomp  ' EXTRA_LDFLAGS_PROGRAM='-all-static' install at /home/www/franken-builder/dist/static-php-cli/src/globals/functions.php(147)
[18:11:06] [ERRO] #0 /home/www/franken-builder/dist/static-php-cli/src/SPC/util/UnixShell.php(51): f_passthru()
#1 /home/www/franken-builder/dist/static-php-cli/src/SPC/builder/linux/LinuxBuilder.php(300): SPC\util\UnixShell->exec()
#2 /home/www/franken-builder/dist/static-php-cli/src/SPC/builder/linux/LinuxBuilder.php(196): SPC\builder\linux\LinuxBuilder->buildEmbed()
#3 /home/www/franken-builder/dist/static-php-cli/src/SPC/command/BuildCliCommand.php(173): SPC\builder\linux\LinuxBuilder->buildPHP()
#4 /home/www/franken-builder/dist/static-php-cli/src/SPC/command/BaseCommand.php(101): SPC\command\BuildCliCommand->handle()
#5 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Command/Command.php(326): SPC\command\BaseCommand->execute()
#6 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run()
#7 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand()
#8 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun()
#9 /home/www/franken-builder/dist/static-php-cli/bin/spc(21): Symfony\Component\Console\Application->run()
#10 {main}

laurent-bientz avatar Aug 19 '24 18:08 laurent-bientz

On Linux, you should run the static-builder Docker image to build the static binary. Otherwise, the host needs special preparation that is tricky to do (musl etc).

dunglas avatar Aug 19 '24 19:08 dunglas

Tamam unutmuyorum

sf

19 Ağu 2024 Pzt 09:16 tarihinde Laurent Bientz @.***> şunu yazdı:

Note that I tried to use the build-static.sh without changing anythings:

git clone https://github.com/dunglas/frankenphp cd frankenphp ./build-static.sh

it fails after a long time:

/bin/bash /home/www/franken-builder/dist/static-php-cli/source/php-src/libtool --silent --preserve-dup-deps --tag=CC --mode=compile x86_64-linux-musl-gcc -Iext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/ -I/home/www/franken-builder/dist/static-php-cli/source/php-src/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/main -I/home/www/franken-builder/dist/static-php-cli/source/php-src -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/date/lib -I/home/www/franken-builder/dist/static-php-cli/buildroot/include/libxml2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/libpng16 -I/include -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/webp -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/freetype2 -I/home/www/franken-builder/dist/static-php-cli/buildroot/lib/pkgconfig/../../include/ImageMagick-7 -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/mbstring/libmbfl/mbfl -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxwriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libexpat/expat/lib -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/library/libxlsxio/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/xlswriter/include -I/home/www/franken-builder/dist/static-php-cli/source/php-src/TSRM -I/home/www/franken-builder/dist/static-php-cli/source/php-src/Zend -I/home/www/franken-builder/dist/static-php-cli/buildroot/include -D_GNU_SOURCE -D_REENTRANT -pthread -fno-common -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -ffp-contract=off -fvisibility=hidden -pthread -Wimplicit-fallthrough=1 -DZTS -DZEND_MAX_EXECUTION_TIMERS -g -Os -fno-ident -fPIE -Wno-strict-prototypes -I/home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd -c /home/www/franken-builder/dist/static-php-cli/source/php-src/ext/gd/libgd/gd_io_ss.c -o ext/gd/libgd/gd_io_ss.lo -MMD -MF ext/gd/libgd/gd_io_ss.dep -MT ext/gd/libgd/gd_io_ss.lo x86_64-linux-musl-gcc: fatal error: Killed signal terminated program cc1 compilation terminated. make: *** [Makefile:944: ext/fileinfo/libmagic/apprentice.lo] Error 1 make: *** Waiting for unfinished jobs.... [18:11:06] [ERRO] Uncaught SPC\exception\RuntimeException: Command run failed with code[2]: cd '/home/www/franken-builder/dist/static-php-cli/source/php-src' && make -j2 INSTALL_ROOT=/home/www/franken-builder/dist/static-php-cli/buildroot EXTRA_CFLAGS='-g -Os -fno-ident -fPIE' EXTRA_LIBS='/home/www/franken-builder/dist/static-php-cli/buildroot/lib/libyaml.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libtidy.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/liblz4.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsqlite3.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpq.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpgport.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpgcommon.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libreadline.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libonig.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/liblber.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libldap.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsodium.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagick++-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagickWand-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libMagickCore-7.Q16HDRI.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libzip.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libtiff.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libncurses.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libgmp.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libfreetype.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libjpeg.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libturbojpeg.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebp.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpdecoder.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpdemux.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libwebpmux.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libsharpyuv.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libavif.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libpng16.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcurl.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libzstd.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libxml2.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicui18n.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicuio.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicuuc.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libicudata.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libiconv.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcharset.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlidec.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlienc.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbrotlicommon.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libssh2.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libssl.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libcrypto.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libz.a /home/www/franken-builder/dist/static-php-cli/buildroot/lib/libbz2.a -lstdc++ -lgomp ' EXTRA_LDFLAGS_PROGRAM='-all-static' install at /home/www/franken-builder/dist/static-php-cli/src/globals/functions.php(147) [18:11:06] [ERRO] #0 /home/www/franken-builder/dist/static-php-cli/src/SPC/util/UnixShell.php(51): f_passthru() #1 /home/www/franken-builder/dist/static-php-cli/src/SPC/builder/linux/LinuxBuilder.php(300): SPC\util\UnixShell->exec() #2 /home/www/franken-builder/dist/static-php-cli/src/SPC/builder/linux/LinuxBuilder.php(196): SPC\builder\linux\LinuxBuilder->buildEmbed() #3 /home/www/franken-builder/dist/static-php-cli/src/SPC/command/BuildCliCommand.php(173): SPC\builder\linux\LinuxBuilder->buildPHP() #4 /home/www/franken-builder/dist/static-php-cli/src/SPC/command/BaseCommand.php(101): SPC\command\BuildCliCommand->handle() #5 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Command/Command.php(326): SPC\command\BaseCommand->execute() #6 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run() #7 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand() #8 /home/www/franken-builder/dist/static-php-cli/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun() #9 /home/www/franken-builder/dist/static-php-cli/bin/spc(21): Symfony\Component\Console\Application->run() #10 {main}

— Reply to this email directly, view it on GitHub https://github.com/dunglas/frankenphp/issues/982#issuecomment-2297159760, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJOVHCBX6F4UAESQSABO5OLZSIZBRAVCNFSM6AAAAABMYGP2HGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJXGE2TSNZWGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Fun32secg32 avatar Aug 19 '24 19:08 Fun32secg32

Thanks @dunglas, I'm able to build the base static binary.

Unfortunately it seems there is no way to add custom caddy modules in the final static build with your docker image right?

I need to add the following modules (with go get or directly by editing go.mod & go.sum - see https://github.com/dunglas/frankenphp/issues/976#issuecomment-2296049125):

  • github.com/darkweak/souin/plugins/caddy@65cb24114d76a7de3f4e8c7b8ef7df3efd028899
  • github.com/darkweak/souin@65cb24114d76a7de3f4e8c7b8ef7df3efd028899
  • github.com/darkweak/storages/otter/caddy

According to https://frankenphp.dev/docs/static/#customizing-the-build, I can't see any env vars to specify extra caddy modules as we can do for php extensions for instance.

Don't hesitate to tell me if I'm wrong (and how to do this) but it seems that it's currently impossible to have a static build of frankenphp with custom caddy modules.

I tries to edit locally https://github.com/dunglas/frankenphp/blob/main/caddy/go.mod without no effect at all, it seems everything come from your docker image dunglas/frankenphp:static-builder

laurent-bientz avatar Aug 20 '24 17:08 laurent-bientz

@laurent-bientz any solution ? i m also facing same

Kamleshpaul avatar Oct 05 '24 10:10 Kamleshpaul