Skip to content

Commit 3857d16

Browse files
author
Sébastien HOUZÉ
authored
feat: add config to control built php versions (#103)
* feat: add config to control built php versions * chore: use bref 1.0.0 instead of 1.0.0-beta1 * chore: prepare changelog for 0.6.4 * deps: support add php80 xdebug variant
1 parent 872f9f4 commit 3857d16

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+253
-94
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ env:
3636
- LAYER=scrypt PHP="73 74"
3737
- LAYER=sqlsrv PHP="73 74"
3838
- LAYER=uuid PHP="73 74 80"
39-
- LAYER=xdebug PHP="73 74"
39+
- LAYER=xdebug PHP="73 74 80"
4040
- LAYER=yaml PHP="73 74 80"
4141

4242
before_install:

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Change log
22

3+
## 0.6.4
4+
5+
### Changed
6+
7+
- Using a new config.json to control which php versions each extension is built.
8+
- Make sure docker is using `1.0.0` tag instead of `1.0.0-beta1`.
9+
310
## 0.6.3
411

512
### Added

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
SHELL := /bin/bash
2-
php_versions ?= 73 74
32
layer ?= *
43
parallel = $(if $(shell which parallel),true,false)
4+
resolve_php_versions = $(or $(php_versions),`jq -r '.php | join(" ")' ${1}/config.json`)
55
66
define generate_list
77
for dir in layers/${layer}; do \
8-
for php_version in $(php_versions); do \
8+
for php_version in $(call resolve_php_versions,$${dir}); do \
99
echo "$${dir} $${php_version}"; \
1010
done \
1111
done
@@ -21,7 +21,7 @@ docker-images:
2121
else \
2222
set -e; \
2323
for dir in layers/${layer}; do \
24-
for php_version in $(php_versions); do \
24+
for php_version in $(call resolve_php_versions,$${dir}); do \
2525
echo "###############################################"; \
2626
echo "###############################################"; \
2727
echo "### Building $${dir} PHP$${php_version}"; \
@@ -39,7 +39,7 @@ layers: docker-images
3939
mkdir -p export/tmp
4040
set -e; \
4141
for dir in layers/${layer}; do \
42-
for php_version in $(php_versions); do \
42+
for php_version in $(call resolve_php_versions,$${dir}); do \
4343
echo "###############################################"; \
4444
echo "###############################################"; \
4545
echo "### Exporting $${dir} PHP$${php_version}"; \
@@ -65,7 +65,7 @@ publish: layers
6565
# Publish docker images
6666
publish-docker-images: docker-images
6767
for dir in layers/${layer}; do \
68-
for php_version in $(php_versions); do \
68+
for php_version in $(call resolve_php_versions,$${dir}); do \
6969
echo "###############################################"; \
7070
echo "###############################################"; \
7171
echo "### Publishing $${dir} PHP$${php_version}"; \

Readme.md

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -51,33 +51,33 @@ memory_limit=128M
5151

5252
### Available layers
5353

54-
| Name | Serverless config (php 7.4) | php.ini config |
55-
|:-----------|:---------------------------------|:-------------------------------------------|
56-
| AMQP | `${bref:extra.amqp-php-74}` | `extension=/opt/bref-extra/amqp.so` |
57-
| Blackfire | `${bref:extra.blackfire-php-74}` | `extension=/opt/bref-extra/blackfire.so` |
58-
| Cassandra | `${bref:extra.cassandra-php-74}` | `extension=/opt/bref-extra/cassandra.so` |
59-
| DS | `${bref:extra.ds-php-74}` | `extension=/opt/bref-extra/ds.so` |
60-
| GD | `${bref:extra.gd-php-74}` | `extension=/opt/bref-extra/gd.so` |
61-
| GMP | `${bref:extra.gmp-php-74}` | `extension=/opt/bref-extra/gmp.so` |
62-
| gRPC | `${bref:extra.grpc-php-74}` | `extension=/opt/bref-extra/grpc.so` |
63-
| Igbinary | `${bref:extra.igbinary-php-74}` | `extension=/opt/bref-extra/igbinary.so` |
64-
| Imagick | `${bref:extra.imagick-php-74}` | `extension=/opt/bref-extra/imagick.so` |
65-
| LDAP | `${bref:extra.ldap-php-74}` | `extension=/opt/bref-extra/ldap.so` |
66-
| Mailparse | `${bref:extra.mailparse-php-74}` | `extension=/opt/bref-extra/mailparse.so` |
67-
| Memcache | `${bref:extra.memcached-php-74}` | `extension=/opt/bref-extra/memcache.so` |
68-
| Memcached | `${bref:extra.memcached-php-74}` | `extension=/opt/bref-extra/memcached.so` |
69-
| MongoDB | `${bref:extra.mongodb-php-74}` | `extension=/opt/bref-extra/mongodb.so` |
70-
| MsgPack | `${bref:extra.msgpack-php-74}` | `extension=/opt/bref-extra/msgpack.so` |
71-
| ODBC Snowflake | `${bref:extra.odbc-snowflake-php-74}` | `extension=/opt/bref-extra/odbc.so` |
72-
| Pcov | `${bref:extra.pcov-php-74}` | `extension=/opt/bref-extra/pcov.so` |
73-
| PostgreSQL | `${bref:extra.pgsql-php-74}` | `extension=/opt/bref-extra/pgsql.so` |
74-
| Redis | `${bref:extra.redis-php-74}` | `extension=/opt/bref-extra/redis.so` |
75-
| Scrypt | `${bref:extra.scrypt-php-74}` | `extension=/opt/bref-extra/scrypt.so` |
76-
| SQLSRV | `${bref:extra.sqlsrv-php-74}` | `extension=/opt/bref-extra/sqlsrv.so` |
77-
| SQLSRV (PDO) | `${bref:extra.sqlsrv-php-74}` | `extension=/opt/bref-extra/pdo_sqlsrv.so` |
78-
| UUID | `${bref:extra.uuid-php-74}` | `zend_extension=/opt/bref-extra/uuid.so` |
79-
| Xdebug | `${bref:extra.xdebug-php-74}` | `zend_extension=/opt/bref-extra/xdebug.so` |
80-
| Yaml | `${bref:extra.yaml-php-74}` | `extension=/opt/bref-extra/yaml.so` |
54+
| Name | Serverless config (php 7.4) | php.ini config |
55+
|:---------------|:--------------------------------------|:-------------------------------------------|
56+
| AMQP | `${bref:extra.amqp-php-74}` | `extension=/opt/bref-extra/amqp.so` |
57+
| Blackfire | `${bref:extra.blackfire-php-74}` | `extension=/opt/bref-extra/blackfire.so` |
58+
| Cassandra | `${bref:extra.cassandra-php-74}` | `extension=/opt/bref-extra/cassandra.so` |
59+
| DS | `${bref:extra.ds-php-74}` | `extension=/opt/bref-extra/ds.so` |
60+
| GD | `${bref:extra.gd-php-74}` | `extension=/opt/bref-extra/gd.so` |
61+
| GMP | `${bref:extra.gmp-php-74}` | `extension=/opt/bref-extra/gmp.so` |
62+
| gRPC | `${bref:extra.grpc-php-74}` | `extension=/opt/bref-extra/grpc.so` |
63+
| Igbinary | `${bref:extra.igbinary-php-74}` | `extension=/opt/bref-extra/igbinary.so` |
64+
| Imagick | `${bref:extra.imagick-php-74}` | `extension=/opt/bref-extra/imagick.so` |
65+
| LDAP | `${bref:extra.ldap-php-74}` | `extension=/opt/bref-extra/ldap.so` |
66+
| Mailparse | `${bref:extra.mailparse-php-74}` | `extension=/opt/bref-extra/mailparse.so` |
67+
| Memcache | `${bref:extra.memcached-php-74}` | `extension=/opt/bref-extra/memcache.so` |
68+
| Memcached | `${bref:extra.memcached-php-74}` | `extension=/opt/bref-extra/memcached.so` |
69+
| MongoDB | `${bref:extra.mongodb-php-74}` | `extension=/opt/bref-extra/mongodb.so` |
70+
| MsgPack | `${bref:extra.msgpack-php-74}` | `extension=/opt/bref-extra/msgpack.so` |
71+
| ODBC Snowflake | `${bref:extra.odbc-snowflake-php-74}` | `extension=/opt/bref-extra/odbc.so` |
72+
| Pcov | `${bref:extra.pcov-php-74}` | `extension=/opt/bref-extra/pcov.so` |
73+
| PostgreSQL | `${bref:extra.pgsql-php-74}` | `extension=/opt/bref-extra/pgsql.so` |
74+
| Redis | `${bref:extra.redis-php-74}` | `extension=/opt/bref-extra/redis.so` |
75+
| Scrypt | `${bref:extra.scrypt-php-74}` | `extension=/opt/bref-extra/scrypt.so` |
76+
| SQLSRV | `${bref:extra.sqlsrv-php-74}` | `extension=/opt/bref-extra/sqlsrv.so` |
77+
| SQLSRV (PDO) | `${bref:extra.sqlsrv-php-74}` | `extension=/opt/bref-extra/pdo_sqlsrv.so` |
78+
| UUID | `${bref:extra.uuid-php-74}` | `zend_extension=/opt/bref-extra/uuid.so` |
79+
| Xdebug | `${bref:extra.xdebug-php-74}` | `zend_extension=/opt/bref-extra/xdebug.so` |
80+
| Yaml | `${bref:extra.yaml-php-74}` | `extension=/opt/bref-extra/yaml.so` |
8181

8282
Note that the "Memcached" layer provides both extension for [Memcache](https://pecl.php.net/package/memcache) and [Memcached](https://pecl.php.net/package/memcached).
8383

@@ -153,8 +153,9 @@ be in their "standard" location.
153153

154154
1. Create a new folder in `layers` and name it to your extension name.
155155
2. Add your Dockerfile
156-
3. Update .travis.yml to include your extension
157-
4. Update the table in the readme
156+
3. Create a config.json file at root of your layer directory specifying php versions it is built for.
157+
4. Update .travis.yml to include your extension
158+
5. Update the table in the readme
158159

159160
Please refer [here](docs/create_your_own_extension_layer.md) for more details.
160161

layers/amqp/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ARG PHP_VERSION
2-
FROM bref/build-php-$PHP_VERSION:1.0.0-beta1 AS ext
2+
FROM bref/build-php-$PHP_VERSION:1.0.0 AS ext
33

44
ENV LIBRABBITMQ_BUILD_DIR=${BUILD_DIR}/librabbitmq
55

66
RUN set -xe; \
77
mkdir -p ${LIBRABBITMQ_BUILD_DIR}; \
8-
# Download and upack the source code
8+
# Download and upack the source code
99
curl -Ls https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz \
10-
| tar xzC ${LIBRABBITMQ_BUILD_DIR}
10+
| tar xzC ${LIBRABBITMQ_BUILD_DIR}
1111

1212
# Move into the unpackaged code directory
1313
WORKDIR ${LIBRABBITMQ_BUILD_DIR}/rabbitmq-c-0.9.0/

layers/amqp/config.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"php": [
3+
"73",
4+
"74"
5+
]
6+
}

layers/blackfire/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ARG PHP_VERSION
2-
FROM bref/build-php-$PHP_VERSION:1.0.0-beta1 AS ext
2+
FROM bref/build-php-$PHP_VERSION:1.0.0 AS ext
33

44
RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
55
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \

layers/blackfire/config.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"php": [
3+
"73",
4+
"74"
5+
]
6+
}

layers/cassandra/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ARG PHP_VERSION
2-
FROM bref/build-php-$PHP_VERSION:1.0.0-beta1 AS ext
2+
FROM bref/build-php-$PHP_VERSION:1.0.0 AS ext
33

44
# Datastax is providing a PHP Cassandra driver, but this hasn't been updated for a while and doesn't work with PHP 7.2 or higher
55
# Datastax indicated there will be updates in the near future, so check https://docs.datastax.com/en/developer/php-driver/ if you want to avoid building your own :-)

layers/cassandra/config.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"php": [
3+
"73",
4+
"74"
5+
]
6+
}

0 commit comments

Comments
 (0)