Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
typo3
CI
testing-infrastructure
Commits
2ca3dc43
Unverified
Commit
2ca3dc43
authored
Sep 27, 2020
by
Susanne Moog
Browse files
[FEATURE] Add PHP 8 base image
parent
f9db696f
Changes
3
Hide whitespace changes
Inline
Side-by-side
.github/workflows/main.yml
View file @
2ca3dc43
...
...
@@ -48,7 +48,7 @@ jobs:
strategy
:
fail-fast
:
false
matrix
:
image
:
[
php53
,
php54
,
php55
,
php56
,
php70
,
php71
,
php72
,
php73
,
php74
,
bamboo
,
js
]
image
:
[
php53
,
php54
,
php55
,
php56
,
php70
,
php71
,
php72
,
php73
,
php74
,
php80
,
bamboo
,
js
]
steps
:
-
uses
:
actions/checkout@v2
...
...
Makefile
View file @
2ca3dc43
...
...
@@ -71,6 +71,13 @@ PATCHLEVEL_PHP74=3
FULLVERSION_PHP74
=
$(MAJOR_PHP74)
.
$(MINOR_PHP74)
.
$(PATCHLEVEL_PHP74)
SHORTVERSION_PHP74
=
$(MAJOR_PHP74)
.
$(MINOR_PHP74)
NAME_PHP80
=
typo3gmbh/php80
MAJOR_PHP80
=
1
MINOR_PHP80
=
0
PATCHLEVEL_PHP80
=
0
FULLVERSION_PHP80
=
$(MAJOR_PHP80)
.
$(MINOR_PHP80)
.
$(PATCHLEVEL_PHP80)
SHORTVERSION_PHP80
=
$(MAJOR_PHP80)
.
$(MINOR_PHP80)
NAME_JS
=
typo3gmbh/js
MAJOR_JS
=
2
MINOR_JS
=
0
...
...
@@ -100,6 +107,7 @@ SHORTVERSION_BAMBOO=$(MAJOR_BAMBOO).$(MINOR_BAMBOO)
build_php72
\
build_php73
\
build_php74
\
build_php80
\
build_js
\
build_bamboo
\
release
\
...
...
@@ -113,6 +121,7 @@ SHORTVERSION_BAMBOO=$(MAJOR_BAMBOO).$(MINOR_BAMBOO)
release_php72
\
release_php73
\
release_php74
\
release_php80
\
release_js
\
release_bamboo
\
clean
\
...
...
@@ -126,6 +135,7 @@ SHORTVERSION_BAMBOO=$(MAJOR_BAMBOO).$(MINOR_BAMBOO)
clean_php72
\
clean_php73
\
clean_php74
\
clean_php80
\
clean_js
\
clean_bamboo
\
clean_images
\
...
...
@@ -139,6 +149,7 @@ SHORTVERSION_BAMBOO=$(MAJOR_BAMBOO).$(MINOR_BAMBOO)
clean_images_php72
\
clean_images_php73
\
clean_images_php74
\
clean_images_php80
\
clean_images_js
\
clean_images_bamboo
...
...
@@ -162,7 +173,8 @@ build_php: \
build_php71
\
build_php72
\
build_php73
\
build_php74
build_php74
\
build_php80
release
:
\
release_baseimage
\
...
...
@@ -179,7 +191,8 @@ release_php: \
release_php71
\
release_php72
\
release_php73
\
release_php74
release_php74
\
release_php80
clean
:
\
clean_baseimage
\
...
...
@@ -192,6 +205,7 @@ clean: \
clean_php72
\
clean_php73
\
clean_php74
\
clean_php80
\
clean_bamboo
\
clean_js
...
...
@@ -207,6 +221,7 @@ clean_images: \
clean_images_php72
\
clean_images_php73
\
clean_images_php74
\
clean_images_php80
\
clean_images_bamboo
\
clean_js
...
...
@@ -541,6 +556,38 @@ clean_images_php74:
docker rmi
$(REGISTRY)$(NAME_PHP74)
:
$(SHORTVERSION_PHP74)
||
true
docker rmi
$(REGISTRY)$(NAME_PHP74)
:
$(FULLVERSION_PHP74)
||
true
build_php80
:
rm
-rf
build_php80
cp
-pR
php80 build_php80
docker build
-t
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
build_php80
docker tag
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
docker tag
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
$(REGISTRY)$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
docker tag
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
$(REGISTRY)$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
release_php80
:
@
if
!
docker images
$(NAME_PHP80)
|
awk
'{ print $$2 }'
|
grep
-q
-F
$(FULLVERSION_PHP80)
;
then
\
echo
"
$(NAME_PHP80)
version
$(FULLVERSION_PHP80)
is not yet built. Please run 'make build'"
;
false
;
\
fi
docker tag
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
$(NAME_PHP80)
:latest
docker tag
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
$(REGISTRY)$(NAME_PHP80)
:latest
docker push
$(NAME_PHP80)
:latest
docker push
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
docker push
$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
docker push
$(REGISTRY)$(NAME_PHP80)
:latest
docker push
$(REGISTRY)$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
docker push
$(REGISTRY)$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
clean_php80
:
rm
-rf
build_php80
clean_images_php80
:
docker rmi
$(NAME_PHP80)
:latest
||
true
docker rmi
$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
||
true
docker rmi
$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
||
true
docker rmi
$(REGISTRY)$(NAME_PHP80)
:latest
||
true
docker rmi
$(REGISTRY)$(NAME_PHP80)
:
$(SHORTVERSION_PHP80)
||
true
docker rmi
$(REGISTRY)$(NAME_PHP80)
:
$(FULLVERSION_PHP80)
||
true
build_bamboo
:
rm
-rf
build_bamboo
...
...
php80/Dockerfile
0 → 100644
View file @
2ca3dc43
FROM
php:8.0.0beta4-alpine
MAINTAINER
TYPO3 GmbH <info@typo3.com>
RUN
apk add
\
curl
\
less
\
vim
\
psmisc
\
net-tools
\
ncdu
\
bzip2
\
patch
\
openssh-client
\
git
\
parallel
\
zip
\
pkgconf
\
re2c
\
tar
\
gd-dev
\
bison
\
coreutils
\
libffi
\
libressl
\
autoconf
\
libtool
\
bison
\
re2c
\
aspell
\
bash
\
curl-dev
\
jpeg-dev
\
argon2-dev
\
freetype-dev
\
libedit-dev
\
libjpeg-turbo-dev
\
libpng-dev
\
libffi-dev
\
libressl-dev
\
libsodium-dev
\
libxml2-dev
\
oniguruma-dev
\
sqlite-dev
\
libsodium-dev
\
libwebp-dev
\
libxpm-dev
\
libxslt-dev
\
postgresql-dev
\
gmp-dev
\
icu-dev
\
gettext-dev
\
aspell-dev
\
libzip-dev
\
bzip2-dev
\
autoconf
\
dpkg-dev dpkg
\
file
\
g++
\
gcc
\
libc-dev
\
make
\
gnupg
\
unixodbc-dev
\
libmemcached-dev
RUN
docker-php-ext-configure gd
--with-freetype
--with-jpeg
--with-webp
RUN
docker-php-ext-install
-j
$(
nproc
)
zip gd bz2 pgsql soap bcmath pdo_mysql gmp intl gettext pspell
# Install SQLSrv pre-reqs
RUN
curl
-O
https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.apk
&&
\
curl
-O
https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.apk
&&
\
curl
-O
https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.6.1.1-1_amd64.sig
&&
\
curl
-O
https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.6.1.1-1_amd64.sig
&&
\
curl https://packages.microsoft.com/keys/microsoft.asc | gpg
--import
-
&&
\
gpg
--verify
msodbcsql17_17.6.1.1-1_amd64.sig msodbcsql17_17.6.1.1-1_amd64.apk
&&
\
gpg
--verify
mssql-tools_17.6.1.1-1_amd64.sig mssql-tools_17.6.1.1-1_amd64.apk
RUN
apk add
--allow-untrusted
msodbcsql17_17.6.1.1-1_amd64.apk
RUN
apk add
--allow-untrusted
mssql-tools_17.6.1.1-1_amd64.apk
# Install PECL Extensions:
# @todo Redis is not yet compatible (build error)
#RUN mkdir -p /usr/src/php/ext/redis && curl -fsSL https://pecl.php.net/get/redis | tar xvz -C "/usr/src/php/ext/redis" --strip 1 && docker-php-ext-install redis
# @todo xdebug is not yet compatible (max version)
#RUN mkdir -p /usr/src/php/ext/xdebug && curl -fsSL https://pecl.php.net/get/xdebug | tar xvz -C "/usr/src/php/ext/xdebug" --strip 1 && docker-php-ext-install xdebug
# @todo sqlsrv is not yet compatible (compile errors)
# RUN mkdir -p /usr/src/php/ext/sqlsrv && curl -fsSL https://pecl.php.net/get/sqlsrv | tar xvz -C "/usr/src/php/ext/sqlsrv" --strip 1 && docker-php-ext-install sqlsrv
RUN
mkdir
-p
/usr/src/php/ext/apcu
&&
curl
-fsSL
https://pecl.php.net/get/apcu |
tar
xvz
-C
"/usr/src/php/ext/apcu"
--strip
1
&&
docker-php-ext-install apcu
RUN
mkdir
-p
/usr/src/php/ext/memcached
&&
curl
-fsSL
https://pecl.php.net/get/memcached |
tar
xvz
-C
"/usr/src/php/ext/memcached"
--strip
1
&&
docker-php-ext-install memcached
RUN
apk del curl-dev
\
gmp-dev
\
icu-dev
\
gettext-dev
\
aspell-dev
\
bzip2-dev
\
autoconf
\
dpkg-dev dpkg
\
file
\
g++
\
gcc
\
libc-dev
\
make
RUN
mv
"
$PHP_INI_DIR
/php.ini-production"
"
$PHP_INI_DIR
/php.ini"
RUN
sed
-i
s/
';phar.readonly = On'
/
'phar.readonly = Off'
/
$PHP_INI_DIR
/php.ini
# Restrict cli based php.ini settings for php -S web server to have sane values in acceptance tests
RUN
sed
-i
s/
'memory_limit = 128M'
/
'memory_limit = 2G'
/
$PHP_INI_DIR
/php.ini
# Enable apc on cli for unit tests
RUN
echo
"apc.enable_cli=1"
>>
$PHP_INI_DIR
/conf.d/docker-php-ext-apcu.ini
RUN
echo
"apc.slam_defense=0"
>>
$PHP_INI_DIR
/conf.d/docker-php-ext-apcu.ini
# @todo Prepare an additional php.ini file that does *NOT* include xdebug -- unavailable due to no xdebug
# can be used with: php -n -c /etc/php/cli-no-xdebug/php.ini
RUN
mkdir
-p
/etc/php/cli-no-xdebug/
&&
\
php
-i
|
\
grep
"
\.
ini"
|
\
grep
-o
-e
'\(/[A-Za-z0-9._-]\+\)\+\.ini'
|
\
grep
-v
xdebug |
\
xargs
awk
'FNR==1{print ""}1'
|
\
grep
-v
'^;'
|
\
grep
-v
'^$'
>
/etc/php/cli-no-xdebug/php.ini
# Install composer latest
RUN
curl
-sSL
https://getcomposer.org/download/1.10.13/composer.phar
-o
/usr/bin/composer
&&
chmod
+x /usr/bin/composer
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment