static-builder.Dockerfile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # syntax=docker/dockerfile:1
  2. FROM golang-base
  3. ARG FRANKENPHP_VERSION=''
  4. ARG PHP_VERSION=''
  5. ARG PHP_EXTENSIONS=''
  6. ARG PHP_EXTENSION_LIBS=''
  7. ARG CLEAN=''
  8. ARG EMBED=''
  9. SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
  10. RUN apk update; \
  11. apk add --no-cache \
  12. autoconf \
  13. automake \
  14. bash \
  15. binutils \
  16. bison \
  17. build-base \
  18. cmake \
  19. curl \
  20. file \
  21. flex \
  22. g++ \
  23. gcc \
  24. git \
  25. jq \
  26. libgcc \
  27. libstdc++ \
  28. libtool \
  29. linux-headers \
  30. m4 \
  31. make \
  32. pkgconfig \
  33. wget \
  34. xz ; \
  35. apk add --no-cache \
  36. --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main \
  37. --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community \
  38. php83 \
  39. php83-common \
  40. php83-curl \
  41. php83-dom \
  42. php83-mbstring \
  43. php83-openssl \
  44. php83-pcntl \
  45. php83-phar \
  46. php83-posix \
  47. php83-sodium \
  48. php83-tokenizer \
  49. php83-xml \
  50. php83-xmlwriter; \
  51. ln -sf /usr/bin/php83 /usr/bin/php
  52. # https://getcomposer.org/doc/03-cli.md#composer-allow-superuser
  53. ENV COMPOSER_ALLOW_SUPERUSER=1
  54. ENV PATH="${PATH}:/root/.composer/vendor/bin"
  55. COPY --from=composer/composer:2-bin --link /composer /usr/bin/composer
  56. WORKDIR /go/src/app
  57. COPY go.mod go.sum ./
  58. RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
  59. WORKDIR /go/src/app/caddy
  60. COPY caddy/go.mod caddy/go.sum ./
  61. RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
  62. WORKDIR /go/src/app
  63. COPY *.* ./
  64. COPY caddy caddy
  65. COPY C-Thread-Pool C-Thread-Pool
  66. RUN --mount=type=secret,id=github-token GITHUB_TOKEN=$(cat /run/secrets/github-token) ./build-static.sh