Skip to content
Snippets Groups Projects
Commit dd56e866 authored by CANALS Gerome's avatar CANALS Gerome
Browse files

add 7.4 images + minor updates on README files

parent ebb9336c
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,8 @@ un ensemble de services correspondant à un environnement de *développement* we
### images php docker
Des images docker pour [php/apache](php), disponibles [ici](https://hub.docker.com/r/canals/php/).
+ une version php7.4 + apache
+ une version php7.3 cli
+ une version php7.3 + apache
+ une version php7.3 cli
+ une version php7.2 + apache
......
......@@ -29,7 +29,7 @@ $ docker-compose -f docker-compose.yml start
### machine(s) php
* un ou plusieurs services php/apache ou php-cli
* basés sur les images `canals/php`, les tags `:latest`, `:7.3`, `:7.2` et `7.2-cli`, `:7.1`
* basés sur les images `canals/php`, les tags `:latest`, `:7.4`,`:7.4-cli`, `:7.3`,`:7.3-cli`, `:7.2` et `7.2-cli`, `:7.1`
et `7.1-cli`,`:5.6` sont utilisables (pour plus de détails sur ces images,
voir la [doc](https://hub.docker.com/r/canals/php/) )
* conseils : utiliser les vhost et les déclarer dans votre `/etc/hosts`
......@@ -64,7 +64,7 @@ services:
```
services:
php:
image: canals/php:7.3-cli
image: canals/php:7.4-cli
ports:
- "8800:8000"
volumes:
......
......@@ -6,7 +6,7 @@ networks:
services:
web:
image: canals/php:latest
image: canals/php:7.4
environment:
- VHOST_HOSTNAME=web.test.local
- VHOST_DOCROOT=/var/www/web
......@@ -28,7 +28,7 @@ services:
- local_network
php:
image: canals/php:7.2-cli
image: canals/php:7.4-cli
expose:
- "8000"
ports:
......@@ -77,8 +77,8 @@ services:
postgres:
image: postgres
environment :
- POSTGRES_PASSWORD = pgroot
- POSTGRES_USER = pguser
- POSTGRES_PASSWORD=pgroot
- POSTGRES_USER=pguser
ports:
- "5432:5432"
networks:
......
# Use an official Python runtime as a base image
FROM php:7.3-cli
RUN apt-get update && \
apt-get install --yes --force-yes \
cron g++ gettext libicu-dev openssl \
libc-client-dev libkrb5-dev \
libxml2-dev libfreetype6-dev \
libgd-dev libmcrypt-dev bzip2 \
libbz2-dev libtidy-dev libcurl4-openssl-dev \
libz-dev libmemcached-dev libxslt-dev git-core libpq-dev \
libzip4 libzip-dev libwebp-dev
# PHP Configuration
RUN docker-php-ext-install bcmath bz2 calendar dba exif gettext intl soap tidy xmlrpc xsl zip&&\
docker-php-ext-install mysqli pgsql pdo pdo_mysql pdo_pgsql &&\
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp &&\
docker-php-ext-install gd &&\
docker-php-ext-configure imap --with-kerberos --with-imap-ssl &&\
docker-php-ext-install imap &&\
docker-php-ext-configure hash --with-mhash &&\
pecl install xdebug && docker-php-ext-enable xdebug &&\
pecl install mongodb && docker-php-ext-enable mongodb &&\
pecl install redis && docker-php-ext-enable redis && \
curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/bin/composer
# Apache Configuration
#RUN a2enmod rewrite
# SSL
#RUN mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/000-default-ssl.conf &&\
# a2enmod ssl && \
# a2ensite 000-default-ssl &&\
# openssl req -subj '/CN=example.com/O=My Company Name LTD./C=US' -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem
#
#EXPOSE 443
# Imagemagick
#RUN apt-get install --yes --force-yes libmagickwand-dev libmagickcore-dev
#RUN yes '' | pecl install -f imagick &&\
# docker-php-ext-enable imagick
#COPY create_vhost start /usr/local/bin/
COPY php.ini /usr/local/etc/php/
# canals/php:7.1-cli, latest
##Image docker PHP
Basée sur l'iamge officielle `php:7.1-cli`
This diff is collapsed.
# Use an official Python runtime as a base image
FROM php:7.4-apache
RUN apt-get update && \
apt-get install --yes --force-yes \
cron g++ gettext libicu-dev openssl \
libc-client-dev libkrb5-dev \
libxml2-dev libfreetype6-dev \
libgd-dev libmcrypt-dev bzip2 \
libbz2-dev libtidy-dev libcurl4-openssl-dev \
libz-dev libmemcached-dev libxslt-dev git-core libpq-dev \
libzip4 libzip-dev libwebp-dev
# PHP Configuration
RUN docker-php-ext-install bcmath bz2 calendar dba exif gettext intl soap tidy xmlrpc xsl zip&&\
docker-php-ext-install mysqli pgsql pdo pdo_mysql pdo_pgsql &&\
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp &&\
docker-php-ext-install gd &&\
docker-php-ext-configure imap --with-kerberos --with-imap-ssl &&\
docker-php-ext-install imap &&\
docker-php-ext-configure hash --with-mhash &&\
pecl install xdebug && docker-php-ext-enable xdebug &&\
pecl install mongodb && docker-php-ext-enable mongodb &&\
pecl install redis && docker-php-ext-enable redis && \
curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/bin/composer
# Apache Configuration
RUN a2enmod rewrite
# SSL
RUN mv /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/000-default-ssl.conf &&\
a2enmod ssl && \
a2ensite 000-default-ssl &&\
openssl req -subj '/CN=example.com/O=My Company Name LTD./C=US' -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem
EXPOSE 443
# Imagemagick
RUN apt-get install --yes --force-yes libmagickwand-dev libmagickcore-dev
RUN yes '' | pecl install -f imagick &&\
docker-php-ext-enable imagick
COPY create_vhost config-vhost start /usr/local/bin/
COPY php.ini /usr/local/etc/php/
CMD ["start"]
\ No newline at end of file
# canals/php:7.2, latest
##Image docker PHP
Basée sur l'iamge officielle `php:7.2-apache`
#!/usr/bin/env bash
if [ -z "$VHOST_HOSTNAME" -o -z "$VHOST_DOCROOT" ]; then
echo "dont create vhost : hostname or docroot empty"
#
#
else
echo "configuring vhost : create_vhost -d $VHOST_DOCROOT -n $VHOST_HOSTNAME"
/usr/local/bin/create_vhost -d $VHOST_DOCROOT -n $VHOST_HOSTNAME
# echo "create cert : openssl req -subj '/CN=$VHOST_HOSTNAME/O=dev. team/C=fr' -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/ssl/private/$VHOST_HOSTNAME.key -out /etc/ssl/certs/$VHOST_HOSTNAME.pem"
openssl req -subj '/CN=$VHOST_HOSTNAME/O=dev. team/C=fr' -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/ssl/private/$VHOST_HOSTNAME.key -out /etc/ssl/certs/$VHOST_HOSTNAME.pem
# echo "create ssl vhost : create_vhost -d $VHOST_DOCROOT -s $VHOST_HOSTNAME"
/usr/local/bin/create_vhost -d $VHOST_DOCROOT -n $VHOST_HOSTNAME -s yes
fi
#echo "start apache foreground"
#apache2-foreground
\ No newline at end of file
#!/usr/bin/env bash
function show_usage {
cat <<- _EOF_
Create a new vHost in Debian/Ubuntu Server
Assumes /etc/apache2/sites-available and /etc/apache2/sites-enabled setup used
-d DocumentRoot - i.e. /var/www/yoursite
-h Help - Show this menu.
-n ServerName - i.e. example.com or sub.example.com
-a ServerAlias - i.e. *.example.com or another domain altogether
-s ssl flag : if set to "yes", generate a key/certificate and enables ssl for the vhost
-c Certificate filename. "xip.io" becomes "xip.io.key" and "xip.io.crt".
if not set, the server name is used as a cert. name
Example Usage.
sudo create_vhost -d /var/www/api -n api.dev.local -s yes
_EOF_
exit 1
}
#
# Output vHost skeleton, fill with userinput
# To be outputted into new file
#
function create_vhost {
cat <<- _EOF_
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName $ServerName
$ServerAlias
DocumentRoot $DocumentRoot
<Directory $DocumentRoot>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
#<FilesMatch \.php$>
# Change this "proxy:unix:/path/to/fpm.socket"
# if using a Unix socket
# SetHandler "proxy:fcgi://127.0.0.1:9000"
#</FilesMatch>
</Directory>
ErrorLog \${APACHE_LOG_DIR}/$ServerName-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog \${APACHE_LOG_DIR}/$ServerName-access.log combined
</VirtualHost>
_EOF_
}
function create_ssl_vhost {
cat <<- _EOF_
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName $ServerName
$ServerAlias
DocumentRoot $DocumentRoot
<Directory $DocumentRoot>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
#<FilesMatch \.php$>
# Change this "proxy:unix:/path/to/fpm.socket"
# if using a Unix socket
# SetHandler "proxy:fcgi://127.0.0.1:9000"
#</FilesMatch>
</Directory>
ErrorLog \${APACHE_LOG_DIR}/$ServerName-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog \${APACHE_LOG_DIR}/$ServerName-access.log combined
SSLEngine on
SSLCertificateFile $CertPath/$CertName.pem
SSLCertificateKeyFile $KeyPath/$CertName.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \\
nokeepalive ssl-unclean-shutdown \\
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
_EOF_
}
#Sanity Check - are there two arguments with 2 values?
if [ "$#" -lt 4 ]; then
show_usage
fi
CertPath="/etc/ssl/certs"
KeyPath="/etc/ssl/private"
#WithSsl="no"
#Parse flags
while getopts "d:s:a:n:c:h" OPTION; do
case $OPTION in
h)
show_usage
;;
d)
DocumentRoot=$OPTARG
;;
n)
ServerName=$OPTARG
;;
a)
Alias=$OPTARG
;;
s)
WithSsl=$OPTARG
;;
c)
CertName=$OPTARG
;;
*)
show_usage
;;
esac
done
# If alias is set:
if [ "$Alias" != "" ]; then
ServerAlias="ServerAlias "$Alias
else
ServerAlias=""
fi
# If CertName doesn't get set, set it to ServerName
if [ "$CertName" == "" ]; then
CertName=$ServerName
fi
if [ ! -d $DocumentRoot ]; then
mkdir -p $DocumentRoot
#chown USER:USER $DocumentRoot #POSSIBLE IMPLEMENTATION, new flag -u ?
fi
if [ -z "$WithSsl" ]; then
if [ -f "/etc/apache2/sites-enabled/$ServerName.conf" ]; then
echo 'vHost already exists. Aborting'
show_usage
else
create_vhost > /etc/apache2/sites-available/${ServerName}.conf
cd /etc/apache2/sites-available/ && a2ensite ${ServerName}.conf
fi
else
if [ -f "/etc/apache2/sites-enabled/$ServerName-ssl.conf" ]; then
echo 'vHost already exists. Aborting'
show_usage
else
create_ssl_vhost >> /etc/apache2/sites-available/${ServerName}-ssl.conf
fi
# Enable Site
cd /etc/apache2/sites-available/ && a2ensite ${ServerName}-ssl.conf
#service apache2 reload
fi
\ No newline at end of file
This diff is collapsed.
#!/usr/bin/env bash
config-vhost
echo "start apache foreground"
apache2-foreground
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment