mirror of
https://github.com/php/frankenphp.git
synced 2026-03-24 00:52: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>
104 lines
2.2 KiB
Docker
104 lines
2.2 KiB
Docker
# syntax=docker/dockerfile:1
|
|
#checkov:skip=CKV_DOCKER_2
|
|
#checkov:skip=CKV_DOCKER_3
|
|
#checkov:skip=CKV_DOCKER_7
|
|
FROM golang-base
|
|
|
|
ARG TARGETARCH
|
|
|
|
ARG FRANKENPHP_VERSION=''
|
|
ENV FRANKENPHP_VERSION=${FRANKENPHP_VERSION}
|
|
|
|
ARG PHP_VERSION=''
|
|
ENV PHP_VERSION=${PHP_VERSION}
|
|
|
|
ARG PHP_EXTENSIONS=''
|
|
ARG PHP_EXTENSION_LIBS=''
|
|
ARG XCADDY_ARGS=''
|
|
ARG CLEAN=''
|
|
ARG EMBED=''
|
|
ARG DEBUG_SYMBOLS=''
|
|
ARG MIMALLOC=''
|
|
ARG NO_COMPRESS=''
|
|
|
|
ENV GOTOOLCHAIN=local
|
|
|
|
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
|
|
|
|
LABEL org.opencontainers.image.title=FrankenPHP
|
|
LABEL org.opencontainers.image.description="The modern PHP app server"
|
|
LABEL org.opencontainers.image.url=https://frankenphp.dev
|
|
LABEL org.opencontainers.image.source=https://github.com/dunglas/frankenphp
|
|
LABEL org.opencontainers.image.licenses=MIT
|
|
LABEL org.opencontainers.image.vendor="Kévin Dunglas"
|
|
|
|
RUN apk update; \
|
|
apk add --no-cache \
|
|
alpine-sdk \
|
|
autoconf \
|
|
automake \
|
|
bash \
|
|
binutils \
|
|
bison \
|
|
build-base \
|
|
cmake \
|
|
curl \
|
|
file \
|
|
flex \
|
|
g++ \
|
|
gcc \
|
|
git \
|
|
jq \
|
|
libgcc \
|
|
libstdc++ \
|
|
libtool \
|
|
linux-headers \
|
|
m4 \
|
|
make \
|
|
pkgconfig \
|
|
php84 \
|
|
php84-common \
|
|
php84-ctype \
|
|
php84-curl \
|
|
php84-dom \
|
|
php84-mbstring \
|
|
php84-openssl \
|
|
php84-pcntl \
|
|
php84-phar \
|
|
php84-posix \
|
|
php84-session \
|
|
php84-sodium \
|
|
php84-tokenizer \
|
|
php84-xml \
|
|
php84-xmlwriter \
|
|
upx \
|
|
wget \
|
|
xz ; \
|
|
ln -sf /usr/bin/php84 /usr/bin/php && \
|
|
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
|
|
|
|
# https://getcomposer.org/doc/03-cli.md#composer-allow-superuser
|
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
|
COPY --from=composer/composer:2-bin /composer /usr/bin/composer
|
|
|
|
WORKDIR /go/src/app
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
WORKDIR /go/src/app/caddy
|
|
COPY caddy/go.mod caddy/go.sum ./
|
|
RUN go mod download
|
|
|
|
WORKDIR /go/src/app
|
|
COPY --link . ./
|
|
|
|
ENV SPC_DEFAULT_C_FLAGS='-fPIE -fPIC -O3'
|
|
ENV SPC_LIBC='musl'
|
|
ENV SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM='-Wl,-O3 -pie'
|
|
ENV SPC_OPT_BUILD_ARGS='--with-config-file-path=/etc/frankenphp --with-config-file-scan-dir=/etc/frankenphp/php.d'
|
|
ENV SPC_REL_TYPE='binary'
|
|
ENV EXTENSION_DIR='/usr/lib/frankenphp/modules'
|
|
|
|
RUN --mount=type=secret,id=github-token GITHUB_TOKEN=$(cat /run/secrets/github-token) ./build-static.sh && \
|
|
rm -Rf dist/static-php-cli/source/*
|