imi-swoole-pgsql.dockerfile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. FROM php:8.0-cli
  2. ENV SWOOLE_VERSION 4.8.3
  3. ENV SWOOLE_POSTGRES 4.8.0
  4. ARG TFB_TEST_DATABASE
  5. ENV TFB_TEST_DATABASE=${TFB_TEST_DATABASE}
  6. RUN docker-php-ext-install -j$(nproc) opcache > /dev/null
  7. RUN apt -yqq update > /dev/null && \
  8. apt -yqq install git unzip libpq-dev > /dev/null
  9. RUN cd /tmp && curl -sSL "https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz" | tar xzf - \
  10. && cd swoole-src-${SWOOLE_VERSION} \
  11. && phpize && ./configure > /dev/null && make -j > /dev/null && make install > /dev/null \
  12. && docker-php-ext-enable swoole
  13. RUN cd /tmp && curl -sSL "https://github.com/swoole/ext-postgresql/archive/v${SWOOLE_POSTGRES}.tar.gz" | tar xzf - \
  14. && cd ext-postgresql-${SWOOLE_POSTGRES} \
  15. && phpize && ./configure > /dev/null && make -j > /dev/null && make install > /dev/null \
  16. && docker-php-ext-enable swoole_postgresql
  17. COPY . /imi
  18. COPY php.ini /usr/local/etc/php/
  19. RUN chmod -R ug+rwx /imi/.runtime
  20. WORKDIR /imi
  21. RUN curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  22. RUN composer install --no-dev --classmap-authoritative --quiet > /dev/null
  23. RUN composer require imiphp/imi-swoole:~2.0 -W
  24. RUN composer dumpautoload -o
  25. EXPOSE 8080
  26. CMD ./run-swoole.sh