44const alpine_version = '3.18 ' ;
55const 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