Run python-smpplib and php-smpp against our server: encodings and bind direction hold, no defects
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# No licence declared for this fork (composer.json says LGPL-2.0-or-later, but no top-level
|
||||
# LICENSE file - see findings/06-python-php.md); test-only, cloned at a pinned commit, never
|
||||
# vendored into this repo.
|
||||
FROM php:8.4.25-cli AS source
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends git ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG PHPSMPP_COMMIT=1d3b53c2d2b63d51ab70009d956914b7f8903118
|
||||
|
||||
RUN git clone https://github.com/alexandr-mironov/php-smpp.git /src \
|
||||
&& cd /src \
|
||||
&& git checkout "${PHPSMPP_COMMIT}"
|
||||
|
||||
# PHP 8's sockets extension returns a Socket object from socket_create(), not a resource; this
|
||||
# fork's own isOpen() checks is_resource() alone (written pre-PHP8), so it is always false and every
|
||||
# guarded call ("Socket is not open") fails immediately, on any PHP 8.x. Patched here, not in
|
||||
# src/Socket.php - see findings/06-python-php.md.
|
||||
RUN sed -i 's/if (!is_resource(\$this->socket)) {/if (!is_resource(\$this->socket) \&\& !(\$this->socket instanceof \\Socket)) {/' /src/src/transport/Socket.php
|
||||
|
||||
FROM php:8.4.25-cli
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends libonig-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& docker-php-ext-install sockets mbstring
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=source /src/src /app/smpp-src
|
||||
COPY driver.php .
|
||||
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["php", "/app/driver.php"]
|
||||
CMD ["node", "2775"]
|
||||
Reference in New Issue
Block a user