mirror of
https://github.com/dunglas/frankenphp
synced 2024-11-21 23:30:45 +00:00
47 lines
1.2 KiB
Docker
47 lines
1.2 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM php-base
|
|
|
|
COPY --from=golang-base /usr/local/go/bin/go /usr/local/bin/go
|
|
COPY --from=golang-base /usr/local/go /usr/local/go
|
|
|
|
RUN apk add --no-cache --virtual .build-deps \
|
|
$PHPIZE_DEPS \
|
|
argon2-dev \
|
|
coreutils \
|
|
curl-dev \
|
|
gnu-libiconv-dev \
|
|
libsodium-dev \
|
|
libxml2-dev \
|
|
linux-headers \
|
|
oniguruma-dev \
|
|
openssl-dev \
|
|
readline-dev \
|
|
sqlite-dev
|
|
|
|
WORKDIR /go/src/app
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
|
|
RUN mkdir caddy && cd caddy
|
|
COPY caddy/go.mod caddy/go.sum ./caddy/
|
|
|
|
RUN cd caddy && go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
|
|
COPY *.* ./
|
|
COPY caddy caddy
|
|
COPY C-Thread-Pool C-Thread-Pool
|
|
COPY internal internal
|
|
COPY testdata testdata
|
|
|
|
# todo: automate this?
|
|
# see https://github.com/docker-library/php/blob/master/8.2/bookworm/zts/Dockerfile#L57-L59 for php values
|
|
ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLAGS" CGO_CFLAGS=$PHP_CFLAGS CGO_CPPFLAGS=$PHP_CPPFLAGS
|
|
|
|
RUN cd caddy/frankenphp && \
|
|
go build && \
|
|
cp frankenphp /usr/local/bin && \
|
|
cp /go/src/app/caddy/frankenphp/Caddyfile /etc/Caddyfile
|
|
|
|
ENTRYPOINT ["/bin/sh","-c"]
|