Move to Alpine and add PHP8

master
Carlos Gomes 2021-11-11 19:01:13 +01:00
rodzic cd4335ce58
commit 3d8307e326
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 870909DFEF7C5FB9
3 zmienionych plików z 96 dodań i 64 usunięć

Wyświetl plik

@ -24,7 +24,7 @@ jobs:
uses: docker/build-push-action@v2
with:
push: true
tags: carlosalgms/composer-and-node-ci:latest
tags: carlosalgms/composer-and-node-ci:latest,carlosalgms/composer-and-node-ci:php8
build_71:
runs-on: ubuntu-latest
@ -44,8 +44,8 @@ jobs:
with:
push: true
build-args: |
FROM_IMAGE=php:7.1
PECL_EXT=imagick-3.5.1
ENABLE_EXT=imagick
PHP_EXT=gd mysqli pdo_mysql opcache pspell mcrypt bcmath exif zip
FROM_IMAGE=php:7.1-cli-alpine
PECL_EXT=""
ENABLE_EXT=""
PHP_EXT=mysqli pspell zip mcrypt
tags: carlosalgms/composer-and-node-ci:php7.1

Wyświetl plik

@ -1,60 +1,43 @@
ARG FROM_IMAGE=php:7
ARG FROM_IMAGE=php:8-cli-alpine
FROM $FROM_IMAGE
MAINTAINER Carlos A. Gomes <carlos.algms@gmail.com>
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install --no-install-recommends --no-install-suggests -y \
gnupg2 \
apt-transport-https \
unzip \
build-essential \
openssh-client \
rsync \
git \
default-mysql-client \
aspell \
gettext-base \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmagickwand-dev \
libmcrypt-dev \
libpng-dev \
libpspell-dev \
libxml2-dev \
libzip-dev \
ca-certificates \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get install --no-install-recommends --no-install-suggests -y \
nodejs \
yarn \
# Slim down image
&& apt-get clean \
&& rm -rf \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/usr/share/man/?? \
/usr/share/man/??_* \
# Install composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# Install Deployer - https://deployer.org/docs/getting-started.html
&& curl -LO https://deployer.org/releases/v6.8.0/deployer.phar \
&& mv deployer.phar /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \
# Show versions
&& php -v \
&& echo "node: `node -v` " \
&& echo "npm: `npm -v`"
LABEL maintainer="Carlos A. Gomes <carlos.algms@gmail.com>"
ARG PECL_EXT="mcrypt-1.0.4 imagick-3.5.1"
RUN pecl install $PECL_EXT
RUN apk add --no-cache \
zsh \
vim \
ca-certificates \
zip \
unzip \
openssh \
rsync \
git \
mysql-client \
nodejs \
npm \
yarn \
composer \
make \
&& curl -L https://deployer.org/releases/v6.8.0/deployer.phar --output /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep
ARG PHP_EXT="gd mysqli pdo_mysql opcache pspell bcmath exif zip"
RUN docker-php-ext-configure gd --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr; \
docker-php-ext-install -j "$(nproc)" $PHP_EXT
ARG PECL_EXT="mcrypt-1.0.4"
ARG PHP_EXT="mysqli pspell zip"
ARG ENABLE_EXT="mcrypt"
ARG ENABLE_EXT="mcrypt imagick"
RUN docker-php-ext-enable $ENABLE_EXT
RUN apk add --no-cache \
libzip \
libmcrypt \
aspell; \
apk add --no-cache --virtual .build-deps \
g++ \
autoconf \
libzip-dev \
libmcrypt-dev \
aspell-dev; \
if [ ! -z "$PECL_EXT" ]; then \
pecl install $PECL_EXT \
&& docker-php-ext-enable $ENABLE_EXT; \
fi; \
docker-php-ext-install -j "$(nproc)" $PHP_EXT; \
apk del .build-deps

Wyświetl plik

@ -6,17 +6,66 @@ The idea is to include everything you need to run unit tests and build frontend
Also, it is possible to run pure PHP or with frameworks like Laravel or CodeIgniter, Composer for dependency manager.
To deploy and transfer files, [deployer](https://deployer.org) and RSync are available.
To deploy and transfer files, [Deployer](https://deployer.org), SSH, and RSync are available.
`Nginx` and `Apache` **are NOT** included.
## This image includes:
* [NodeJS 14.x and NPM](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions)
* [yarn - latest](https://classic.yarnpkg.com/en/docs/install/#debian-stable)
* PHP 7:latest
* [composer - latest](https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md)
* [deployer](https://deployer.org)
* PHP 8-cli, 7.1-cli
* [Composer - latest](https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md)
* [Deployer](https://deployer.org)
* OpenSSH client
* Git
* RSync
* MySql Client
* zsh
* vim
* Make
### Loaded modules:
```
$ php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
pspell
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
```