Unverified Commit 2ca3dc43 authored by Susanne Moog's avatar Susanne Moog
Browse files

[FEATURE] Add PHP 8 base image

parent f9db696f
......@@ -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
......
......@@ -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
......
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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment