Dockerfile.dev 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. FROM golang:1.20
  2. ARG LIBICONV_VERSION=1.17
  3. ENV PHPIZE_DEPS \
  4. autoconf \
  5. dpkg-dev \
  6. file \
  7. g++ \
  8. gcc \
  9. libc-dev \
  10. make \
  11. pkg-config \
  12. re2c
  13. RUN apt-get update && \
  14. apt-get -y --no-install-recommends install \
  15. $PHPIZE_DEPS \
  16. libargon2-dev \
  17. libcurl4-openssl-dev \
  18. libonig-dev \
  19. libreadline-dev \
  20. libsodium-dev \
  21. libsqlite3-dev \
  22. libssl-dev \
  23. libxml2-dev \
  24. zlib1g-dev \
  25. bison \
  26. # Dev tools \
  27. git \
  28. clang \
  29. llvm \
  30. gdb \
  31. valgrind \
  32. neovim \
  33. zsh \
  34. libtool-bin && \
  35. echo 'set auto-load safe-path /' > /root/.gdbinit && \
  36. echo '* soft core unlimited' >> /etc/security/limits.conf \
  37. && \
  38. apt-get clean
  39. RUN git clone --branch=PHP-8.2 https://github.com/php/php-src.git && \
  40. cd php-src && \
  41. # --enable-embed is only necessary to generate libphp.so, we don't use this SAPI directly
  42. ./buildconf && \
  43. ./configure \
  44. --enable-embed \
  45. --enable-zts \
  46. --disable-zend-signals \
  47. --enable-zend-max-execution-timers \
  48. --enable-debug && \
  49. make -j$(nproc) && \
  50. make install && \
  51. ldconfig && \
  52. php --version
  53. RUN echo "zend_extension=opcache.so\nopcache.enable=1" > /usr/local/lib/php.ini
  54. WORKDIR /go/src/app
  55. COPY . .
  56. RUN go get -d -v ./...
  57. CMD [ "zsh" ]