Created
July 8, 2017 07:46
-
-
Save ruman/51ba3c39d266cd04474602a3d500824b to your computer and use it in GitHub Desktop.
Laradock with nginx mysql phpmyadmin mailhog and install openssl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM nginx:alpine | |
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> | |
ADD nginx.conf /etc/nginx/ | |
ARG PHP_UPSTREAM=php-fpm | |
# fix a problem--#397, change application source from dl-cdn.alpinelinux.org to aliyun source. | |
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories | |
RUN apk update \ | |
&& apk upgrade \ | |
&& apk add --no-cache bash \ | |
&& adduser -D -H -u 1000 -s /bin/bash www-data \ | |
&& rm /etc/nginx/conf.d/default.conf \ | |
&& echo "upstream php-upstream { server ${PHP_UPSTREAM}:9000; }" > /etc/nginx/conf.d/upstream.conf | |
RUN apk add --no-cache openssl | |
RUN mkdir /etc/nginx/ssl 2> /dev/null | |
RUN openssl genrsa -out "/etc/nginx/ssl/sslsite.dev.key" 2048 \ | |
&& openssl req -new -key "/etc/nginx/ssl/sslsite.dev.key" -out "/etc/nginx/ssl/sslsite.dev.csr" -subj "/CN=sslsite.dev/O=sslsite.dev/C=UK" \ | |
&& openssl x509 -req -days 365 -in "/etc/nginx/ssl/sslsite.dev.csr" -signkey "/etc/nginx/ssl/sslsite.dev.key" -out "/etc/nginx/ssl/sslsite.dev.crt" | |
CMD ["nginx"] | |
EXPOSE 80 443 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
#-------------------------------------------------------------------------- | |
# Image Setup | |
#-------------------------------------------------------------------------- | |
# | |
# To edit the 'php-fpm' base Image, visit its repository on Github | |
# https://github.com/Laradock/php-fpm | |
# | |
# To change its version, see the available Tags on the Docker Hub: | |
# https://hub.docker.com/r/laradock/php-fpm/tags/ | |
# | |
# Note: Base Image name format {image-tag}-{php-version} | |
# | |
FROM laradock/php-fpm:1.4-71 | |
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> | |
# | |
#-------------------------------------------------------------------------- | |
# Mandatory Software's Installation | |
#-------------------------------------------------------------------------- | |
# | |
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....) | |
# are installed on the base image 'laradock/php-fpm' image. If you want | |
# to add more Software's or remove existing one, you need to edit the | |
# base image (https://github.com/Laradock/php-fpm). | |
# | |
# | |
#-------------------------------------------------------------------------- | |
# Optional Software's Installation | |
#-------------------------------------------------------------------------- | |
# | |
# Optional Software's will only be installed if you set them to `true` | |
# in the `docker-compose.yml` before the build. | |
# Example: | |
# - INSTALL_ZIP_ARCHIVE=true | |
# | |
##################################### | |
# SSMTP: | |
##################################### | |
ARG INSTALL_SSMTP=false | |
RUN if [ ${INSTALL_SSMTP} = true ]; then \ | |
RUN apt-get update -yqq && \ | |
apt-get -y install ssmtp && \ | |
sed -e s/mailhub=mail/mailhub=mailhog:1025/g /etc/ssmtp/ssmtp.conf > ssmtp.conf.tmp && \ | |
mv ssmtp.conf.tmp /etc/ssmtp/ssmtp.conf \ | |
;fi | |
##################################### | |
# SOAP: | |
##################################### | |
ARG INSTALL_SOAP=false | |
RUN if [ ${INSTALL_SOAP} = true ]; then \ | |
# Install the soap extension | |
apt-get update -yqq && \ | |
apt-get -y install libxml2-dev php-soap && \ | |
docker-php-ext-install soap \ | |
;fi | |
##################################### | |
# xDebug: | |
##################################### | |
ARG INSTALL_XDEBUG=false | |
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ | |
# Install the xdebug extension | |
pecl install xdebug && \ | |
docker-php-ext-enable xdebug \ | |
;fi | |
# Copy xdebug configration for remote debugging | |
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini | |
##################################### | |
# Blackfire: | |
##################################### | |
ARG INSTALL_BLACKFIRE=false | |
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \ | |
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ | |
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ | |
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \ | |
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ | |
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \ | |
;fi | |
##################################### | |
# PHP REDIS EXTENSION FOR PHP 7 | |
##################################### | |
ARG INSTALL_PHPREDIS=false | |
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ | |
# Install Php Redis Extension | |
pecl install -o -f redis \ | |
&& rm -rf /tmp/pear \ | |
&& docker-php-ext-enable redis \ | |
;fi | |
##################################### | |
# Swoole EXTENSION FOR PHP 7 | |
##################################### | |
ARG INSTALL_SWOOLE=false | |
RUN if [ ${INSTALL_SWOOLE} = true ]; then \ | |
# Install Php Swoole Extension | |
pecl install swoole \ | |
&& docker-php-ext-enable swoole \ | |
;fi | |
##################################### | |
# MongoDB: | |
##################################### | |
ARG INSTALL_MONGO=false | |
RUN if [ ${INSTALL_MONGO} = true ]; then \ | |
# Install the mongodb extension | |
pecl install mongodb && \ | |
docker-php-ext-enable mongodb \ | |
;fi | |
##################################### | |
# ZipArchive: | |
##################################### | |
ARG INSTALL_ZIP_ARCHIVE=false | |
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ | |
# Install the zip extension | |
docker-php-ext-install zip \ | |
;fi | |
##################################### | |
# bcmath: | |
##################################### | |
ARG INSTALL_BCMATH=false | |
RUN if [ ${INSTALL_BCMATH} = true ]; then \ | |
# Install the bcmath extension | |
docker-php-ext-install bcmath \ | |
;fi | |
##################################### | |
# PHP Memcached: | |
##################################### | |
ARG INSTALL_MEMCACHED=false | |
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ | |
# Install the php memcached extension | |
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ | |
&& mkdir -p memcached \ | |
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ | |
&& ( \ | |
cd memcached \ | |
&& phpize \ | |
&& ./configure \ | |
&& make -j$(nproc) \ | |
&& make install \ | |
) \ | |
&& rm -r memcached \ | |
&& rm /tmp/memcached.tar.gz \ | |
&& docker-php-ext-enable memcached \ | |
;fi | |
##################################### | |
# Exif: | |
##################################### | |
ARG INSTALL_EXIF=false | |
RUN if [ ${INSTALL_EXIF} = true ]; then \ | |
# Enable Exif PHP extentions requirements | |
docker-php-ext-install exif \ | |
;fi | |
##################################### | |
# PHP Aerospike: | |
##################################### | |
ARG INSTALL_AEROSPIKE=false | |
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE} | |
# Copy aerospike configration for remote debugging | |
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini | |
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \ | |
# Fix dependencies for PHPUnit within aerospike extension | |
apt-get update -yqq && \ | |
apt-get -y install sudo wget && \ | |
# Install the php aerospike extension | |
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \ | |
&& mkdir -p aerospike-client-php \ | |
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ | |
&& ( \ | |
cd aerospike-client-php/src/aerospike \ | |
&& phpize \ | |
&& ./build.sh \ | |
&& make install \ | |
) \ | |
&& rm /tmp/aerospike-client-php.tar.gz \ | |
;fi | |
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \ | |
rm /usr/local/etc/php/conf.d/aerospike.ini \ | |
;fi | |
##################################### | |
# Opcache: | |
##################################### | |
ARG INSTALL_OPCACHE=false | |
RUN if [ ${INSTALL_OPCACHE} = true ]; then \ | |
docker-php-ext-install opcache \ | |
;fi | |
# Copy opcache configration | |
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini | |
##################################### | |
# Mysqli Modifications: | |
##################################### | |
ARG INSTALL_MYSQLI=false | |
RUN if [ ${INSTALL_MYSQLI} = true ]; then \ | |
docker-php-ext-install mysqli \ | |
;fi | |
##################################### | |
# Tokenizer Modifications: | |
##################################### | |
ARG INSTALL_TOKENIZER=false | |
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ | |
docker-php-ext-install tokenizer \ | |
;fi | |
##################################### | |
# Human Language and Character Encoding Support: | |
##################################### | |
ARG INSTALL_INTL=false | |
RUN if [ ${INSTALL_INTL} = true ]; then \ | |
# Install intl and requirements | |
apt-get update -yqq && \ | |
apt-get install -y zlib1g-dev libicu-dev g++ && \ | |
docker-php-ext-configure intl && \ | |
docker-php-ext-install intl \ | |
;fi | |
##################################### | |
# GHOSTSCRIPT: | |
##################################### | |
ARG INSTALL_GHOSTSCRIPT=false | |
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ | |
# Install the ghostscript extension | |
# for PDF editing | |
apt-get update -yqq \ | |
&& apt-get install -y \ | |
poppler-utils \ | |
ghostscript \ | |
;fi | |
##################################### | |
# LDAP: | |
##################################### | |
ARG INSTALL_LDAP=false | |
RUN if [ ${INSTALL_LDAP} = true ]; then \ | |
apt-get update -yqq && \ | |
apt-get install -y libldap2-dev && \ | |
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ | |
docker-php-ext-install ldap \ | |
;fi | |
##################################### | |
# SQL SERVER: | |
##################################### | |
ARG INSTALL_MSSQL=false | |
ENV INSTALL_MSSQL ${INSTALL_MSSQL} | |
RUN if [ ${INSTALL_MSSQL} = true ]; then \ | |
##################################### | |
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image | |
##################################### | |
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux | |
apt-get update -yqq && apt-get install -y apt-transport-https \ | |
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ | |
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \ | |
&& apt-get update -yqq \ | |
# Install Dependencies | |
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \ | |
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen \ | |
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version. | |
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \ | |
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \ | |
;fi | |
# | |
#-------------------------------------------------------------------------- | |
# Final Touch | |
#-------------------------------------------------------------------------- | |
# | |
ADD ./laravel.ini /usr/local/etc/php/conf.d | |
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ | |
#RUN rm -r /var/lib/apt/lists/* | |
RUN usermod -u 1000 www-data | |
WORKDIR /var/www | |
CMD ["php-fpm"] | |
EXPOSE 9000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
listen 80; | |
listen 443 ssl; | |
listen [::]:80; | |
server_name sslsite.dev; | |
root /var/www/sslsite/; | |
index index.php index.html index.htm; | |
ssl_certificate /etc/nginx/ssl/sslsite.dev.crt; | |
ssl_certificate_key /etc/nginx/ssl/sslsite.dev.key; | |
location / { | |
try_files $uri $uri/ /index.php$is_args$args; | |
} | |
location ~ \.php$ { | |
try_files $uri /index.php =404; | |
fastcgi_pass php-upstream; | |
fastcgi_index index.php; | |
fastcgi_buffers 16 16k; | |
fastcgi_buffer_size 32k; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
include fastcgi_params; | |
} | |
location ~ /\.ht { | |
deny all; | |
} | |
location /.well-known/acme-challenge/ { | |
root /var/www/letsencrypt/; | |
log_not_found off; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment