123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # syntax=docker/dockerfile:1
- 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 CLEAN=''
- ARG EMBED=''
- ARG DEBUG_SYMBOLS=''
- ARG MIMALLOC=''
- ARG NO_COMPRESS=''
- 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 \
- php83 \
- php83-common \
- php83-ctype \
- php83-curl \
- php83-dom \
- php83-mbstring \
- php83-openssl \
- php83-pcntl \
- php83-phar \
- php83-posix \
- php83-session \
- php83-sodium \
- php83-tokenizer \
- php83-xml \
- php83-xmlwriter \
- upx \
- wget \
- xz ; \
- ln -sf /usr/bin/php83 /usr/bin/php
- # FIXME: temporary workaround for https://github.com/golang/go/issues/68285
- WORKDIR /
- RUN git clone https://go.googlesource.com/go goroot
- WORKDIR /goroot
- COPY 0001-fix-musl-crash.patch .
- RUN git checkout "$(go env GOVERSION)" && \
- git apply 0001-fix-musl-crash.patch
- WORKDIR /goroot/src
- ENV GOHOSTARCH="$TARGETARCH"
- RUN ./make.bash
- ENV PATH="/goroot/bin:$PATH"
- RUN go version
- # 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 graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
- WORKDIR /go/src/app/caddy
- COPY caddy/go.mod caddy/go.sum ./
- RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
- WORKDIR /go/src/app
- COPY *.* ./
- COPY caddy caddy
- RUN --mount=type=secret,id=github-token GITHUB_TOKEN=$(cat /run/secrets/github-token) ./build-static.sh && \
- rm -Rf dist/static-php-cli/source/*
|