Skip to content

Commit 7b50acb

Browse files
committed
Add 8.4
1 parent 802bfb6 commit 7b50acb

File tree

5 files changed

+60
-49
lines changed

5 files changed

+60
-49
lines changed

alpine/Dockerfile renamed to 8.4-alpine/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM php:alpine
1+
FROM php:8.4.0RC2-alpine3.20
22
LABEL maintainer="Swoole Team <[email protected]>"
33

44
RUN apk update
@@ -39,6 +39,7 @@ RUN apk add --no-cache \
3939
zlib-dev \
4040
libcurl \
4141
libpq \
42+
unixodbc-dev \
4243
curl-dev
4344

4445
# extensions

rc-alpine/Dockerfile renamed to 8.4-zts-alpine/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM php:rc-alpine
1+
FROM php:8.4.0RC2-zts-alpine3.20
22
LABEL maintainer="Swoole Team <[email protected]>"
33

44
RUN apk update
@@ -39,6 +39,7 @@ RUN apk add --no-cache \
3939
zlib-dev \
4040
libcurl \
4141
libpq \
42+
unixodbc-dev \
4243
curl-dev
4344

4445
# extensions

rc/Dockerfile renamed to 8.4-zts/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM php:bullseye
1+
FROM php:8.4.0RC2-zts-bullseye
22
LABEL maintainer="Swoole Team <[email protected]>"
33

44
RUN apt update -y
@@ -17,6 +17,8 @@ RUN apt install -y \
1717
libc-ares-dev \
1818
libbrotli-dev \
1919
libpq-dev \
20+
unixodbc-dev \
21+
odbc-mariadb \
2022
curl \
2123
wget \
2224
zip \

latest/Dockerfile renamed to 8.4/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM php:bullseye
1+
FROM php:8.4.0RC2-bullseye
22
LABEL maintainer="Swoole Team <[email protected]>"
33

44
RUN apt update -y
@@ -17,6 +17,8 @@ RUN apt install -y \
1717
libc-ares-dev \
1818
libbrotli-dev \
1919
libpq-dev \
20+
unixodbc-dev \
21+
odbc-mariadb \
2022
curl \
2123
wget \
2224
zip \

generator

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,60 +4,65 @@
44
const alpine_version = '3.18';
55
const debian_version = 'bullseye';
66

7-
function render($version, $type)
7+
class DockerfileGenerator
88
{
9-
$v = strstr($version, '-', true) ?: $version;
10-
if (version_compare($v, '8.0', '>=') or $v == 'rc' or $v == 'latest' or $v == 'alpine') {
9+
protected $debian_versions = ['8.1', '8.2', '8.3', '8.4'];
10+
protected $alpine_versions = ['8.1-alpine', '8.2-alpine', '8.3-alpine', '8.4-alpine'];
11+
protected $alpine_zts_versions = ['8.1-zts-alpine', '8.2-zts-alpine', '8.3-zts-alpine', '8.4-zts-alpine'];
12+
protected $debian_zts_versions = ['8.1-zts', '8.2-zts', '8.3-zts', '8.4-zts'];
13+
14+
protected $baseImageTag = [
15+
'8.4' => '8.4.0RC2-bullseye',
16+
'8.4-zts' => '8.4.0RC2-zts-bullseye',
17+
'8.4-alpine' => '8.4.0RC2-alpine3.20',
18+
'8.4-zts-alpine' => '8.4.0RC2-zts-alpine3.20',
19+
];
20+
21+
private function render($version, $type)
22+
{
23+
$v = strstr($version, '-', true) ?: $version;
1124
$CFLAGS = 'CFLAGS="$CFLAGS -D_GNU_SOURCE"';
12-
} else {
13-
$CFLAGS = '';
14-
}
1525

16-
$alpine = str_contains($version, 'alpine');
17-
if (!$alpine) {
18-
// 7.2 does not have bullseye
19-
if ($version === '7.2') {
20-
$tag = $version;
21-
} elseif ($version === 'rc' or $version == 'latest') {
22-
$tag = debian_version;
23-
} else {
24-
$tag = $version . '-' . debian_version;
25-
}
26-
} else {
27-
if (version_compare($v, '8.1', '>=')) {
28-
$tag = $version . alpine_version;
26+
$alpine = str_contains($version, 'alpine');
27+
28+
if (isset($this->baseImageTag[$version])) {
29+
$tag = $this->baseImageTag[$version];
2930
} else {
30-
$tag = $version;
31+
if (!$alpine) {
32+
$tag = $version . '-' . debian_version;
33+
} else {
34+
$tag = $version . alpine_version;
35+
}
3136
}
32-
}
3337

34-
ob_start();
35-
include __DIR__ . '/templates/' . $type . '.php';
36-
$content = ob_get_clean();
37-
$dockerFile = __DIR__ . '/' . $version . '/Dockerfile';
38+
ob_start();
39+
include __DIR__ . '/templates/' . $type . '.php';
40+
$content = ob_get_clean();
41+
$dockerFile = __DIR__ . '/' . $version . '/Dockerfile';
3842

39-
if (!is_dir(dirname($dockerFile))) {
40-
mkdir(dirname($dockerFile));
43+
if (!is_dir(dirname($dockerFile))) {
44+
mkdir(dirname($dockerFile));
45+
}
46+
file_put_contents($dockerFile, $content);
4147
}
42-
file_put_contents($dockerFile, $content);
43-
}
4448

45-
$debian_versions = ['8.1', '8.2', '8.3', 'rc', 'latest'];
46-
foreach ($debian_versions as $v) {
47-
render($v, 'debian');
48-
}
49-
50-
$alpine_versions = ['8.1-alpine', '8.2-alpine', '8.3-alpine', 'rc-alpine', 'alpine'];
51-
foreach ($alpine_versions as $v) {
52-
render($v, 'alpine');
53-
}
49+
public function make()
50+
{
51+
foreach ($this->debian_versions as $v) {
52+
$this->render($v, 'debian');
53+
}
54+
foreach ($this->alpine_versions as $v) {
55+
$this->render($v, 'alpine');
56+
}
57+
foreach ($this->debian_zts_versions as $v) {
58+
$this->render($v, 'debian');
59+
}
60+
foreach ($this->alpine_zts_versions as $v) {
61+
$this->render($v, 'alpine');
62+
}
5463

55-
$debian_zts_versions = ['8.1-zts', '8.2-zts', '8.3-zts'];
56-
foreach ($debian_zts_versions as $v) {
57-
render($v, 'debian');
64+
echo "Generate Dockerfile Success!\n";
65+
}
5866
}
5967

60-
$alpine_zts_versions = ['8.1-zts-alpine', '8.2-zts-alpine', '8.3-zts-alpine'];
61-
foreach ($alpine_zts_versions as $v) {
62-
render($v, 'alpine');
63-
}
68+
(new DockerfileGenerator())->make();

0 commit comments

Comments
 (0)