Подключение secp256k1-php к php [dockerfile]
Занимаюсь подписанием транзакций на php, вчера пол дня подключал secp256k1-php к докеру
Инструкция по подключению простая, но плохая для докера) без граблей не работает. Поэтому для тех кто пойдет протореной тропой, выкину dockerfile.
Сама иснтрукция выглядит так
To Install:
git clone git@github.com:Bit-Wasp/secp256k1-php
git clone git@github.com:bitcoin-core/secp256k1
cd secp256k1
./autogen.sh && ./configure --enable-experimental --enable-module-{ecdh,recovery} && make && sudo make install
cd ../secp256k1-php/secp256k1
phpize && ./configure --with-secp256k1 && make && sudo make install
сразу скажу, что
--enable-module-{ecdh,recovery}
следует заменить на
--enable-module-ecdh --enable-module-recovery
Для работы Bit-Wasp/secp256k1-php в докере следует установить дополнительно 2 компонента "automake", "libtool"
Далее
git clone git@github.com:Bit-Wasp/secp256k1-php
git clone git@github.com:bitcoin-core/secp256k1
не получится использовать в докере, поскольку нужен ssh ключь, чб докер не ругался, поэтому погуглив, сделал скачку zip с распоковкой.
Для распаковки архива и работы composer понадобится компонент "zip"
В результате докер файл выглядит так
# our base image
FROM php:7.1-fpm
#install zip extension for composer
RUN apt-get update && apt-get install -y \
zip \
automake \
libtool
#install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#install secp256k1-php
# Setup for ssh onto github
RUN cd ~ && \
curl -#L https://github.com/bitcoin-core/secp256k1/archive/master.zip > file.zip && \
unzip file.zip && \
rm file.zip && \
cd secp256k1-master && \
./autogen.sh && \
./configure --enable-experimental --enable-module-ecdh --enable-module-recovery && \
make && \
make install
RUN cd ~ && \
curl -#L https://github.com/Bit-Wasp/secp256k1-php/archive/v0.1.2.zip > file.zip && \
unzip file.zip && \
rm file.zip && \
cd secp256k1-php-0.1.2/secp256k1 && \
phpize && \
./configure --with-secp256k1 && \
make && \
make install
RUN echo "extension=secp256k1.so" > /usr/local/etc/php/conf.d/secp256k1.ini
RUN chown -R www-data:www-data /var/www
WORKDIR /var/www/php-node-client
Для тех кому интересно, benchmark показывает
real 0m1.348s
user 0m1.270s
sys 0m0.010s
Я не вкурсе насколько это круто, но говорят, что быстро)