Skip to content

Commit f782b9e

Browse files
author
Pushpinder Rana
committed
Added Docker files for all the containers.
1 parent acf4910 commit f782b9e

File tree

6 files changed

+191
-0
lines changed

6 files changed

+191
-0
lines changed

.env

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
APACHE_VERSION=2.4.41
2+
MYSQL_VERSION=8.0.0
3+
PHP_VERSION=7.3
4+
5+
DB_NAME=drupal
6+
DB_USERNAME=drupal
7+
DB_PASSWORD=drupal123
8+
MYSQL_ROOT_PASSWORD=admin
9+
10+
PROJECT_ROOT=./docroot

apache/Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
ARG APACHE_VERSION=""
2+
FROM httpd:${APACHE_VERSION:+${APACHE_VERSION}-}alpine
3+
4+
RUN apk update; \
5+
apk upgrade;
6+
7+
# Copy apache vhost file to proxy php requests to php-fpm container
8+
COPY apache.conf /usr/local/apache2/conf/apache.conf
9+
RUN echo "Include /usr/local/apache2/conf/apache.conf" \
10+
>> /usr/local/apache2/conf/httpd.conf

apache/apache.conf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
ServerName localhost
2+
3+
LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
4+
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
5+
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so
6+
LoadModule rewrite_module /usr/local/apache2/modules/mod_rewrite.so
7+
8+
<VirtualHost *:80>
9+
# Php requests to port 9000 of the php-fpm container
10+
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/var/www/html/$1
11+
DocumentRoot /var/www/html/
12+
<Directory /var/www/html/>
13+
DirectoryIndex index.php
14+
Options Indexes FollowSymLinks
15+
AllowOverride All
16+
Require all granted
17+
</Directory>
18+
19+
# Manage apache and error logs
20+
ErrorLog /var/log/apache2/error.log
21+
</VirtualHost>

docker-compose.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
version: "3.2"
2+
services:
3+
php:
4+
build:
5+
context: './php/'
6+
args:
7+
PHP_VERSION: ${PHP_VERSION}
8+
networks:
9+
- backend
10+
volumes:
11+
- ${PROJECT_ROOT}/:/var/www/html/
12+
container_name: php
13+
apache:
14+
build:
15+
context: './apache/'
16+
args:
17+
APACHE_VERSION: ${APACHE_VERSION}
18+
depends_on:
19+
- php
20+
- mysql
21+
networks:
22+
- frontend
23+
- backend
24+
ports:
25+
- "80:80"
26+
volumes:
27+
- ${PROJECT_ROOT}/:/var/www/html/
28+
container_name: apache
29+
mysql:
30+
image: mysql:${MYSQL_VERSION:-latest}
31+
restart: always
32+
ports:
33+
- "3306:3306"
34+
volumes:
35+
- data:/var/lib/mysql
36+
networks:
37+
- backend
38+
environment:
39+
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
40+
MYSQL_DATABASE: "${DB_NAME}"
41+
MYSQL_USER: "${DB_USERNAME}"
42+
MYSQL_PASSWORD: "${DB_PASSWORD}"
43+
container_name: mysql
44+
networks:
45+
frontend:
46+
backend:
47+
volumes:
48+
data:

docroot/index.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<h1>Congratulations!! Docker setup connection is successful.</h1>
2+
3+
<h4>Checking MySQL integration with php.</h4>
4+
<?php
5+
$host = 'mysql';
6+
$user = 'drupal';
7+
$pass = 'drupal123';
8+
$conn = new mysqli($host, $user, $pass);
9+
10+
if ($conn->connect_error) {
11+
die("MySql connection is failed: " . $conn->connect_error);
12+
} else {
13+
echo "MySql connection is successful!";
14+
}
15+
16+
echo phpinfo();
17+
18+
?>

php/Dockerfile

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
ARG PHP_VERSION=""
2+
FROM php:${PHP_VERSION:+${PHP_VERSION}-}fpm-alpine
3+
4+
RUN apk update; \
5+
apk upgrade;
6+
7+
# Install MySql
8+
RUN docker-php-ext-install mysqli
9+
10+
RUN docker-php-ext-install mysqli pdo pdo_mysql
11+
12+
# Install Composer
13+
RUN curl -sS https://getcomposer.org/installer | php && \
14+
mv composer.phar /usr/local/bin/composer && \
15+
ln -s /root/.composer/vendor/bin/drush /usr/local/bin/drush
16+
17+
# Install Drush
18+
RUN composer global require drush/drush && \
19+
composer global update
20+
21+
# PHP packages
22+
RUN apk add --update \
23+
libressl \
24+
ca-certificates \
25+
openssh-client \
26+
rsync \
27+
git \
28+
curl \
29+
wget \
30+
gzip \
31+
tar \
32+
patch \
33+
perl \
34+
pcre \
35+
imap \
36+
imagemagick \
37+
mariadb-client \
38+
build-base \
39+
autoconf \
40+
libtool \
41+
php7-dev \
42+
pcre-dev \
43+
imagemagick-dev \
44+
php7 \
45+
php7-fpm \
46+
php7-opcache \
47+
php7-session \
48+
php7-dom \
49+
php7-xml \
50+
php7-xmlreader \
51+
php7-ctype \
52+
php7-ftp \
53+
php7-gd \
54+
php7-json \
55+
php7-posix \
56+
php7-curl \
57+
php7-pdo \
58+
php7-pdo_mysql \
59+
php7-sockets \
60+
php7-zlib \
61+
php7-mcrypt \
62+
php7-mysqli \
63+
php7-sqlite3 \
64+
php7-bz2 \
65+
php7-phar \
66+
php7-openssl \
67+
php7-posix \
68+
php7-zip \
69+
php7-calendar \
70+
php7-iconv \
71+
php7-imap \
72+
php7-soap \
73+
php7-dev \
74+
php7-pear \
75+
php7-redis \
76+
php7-mbstring \
77+
php7-xdebug \
78+
php7-exif \
79+
php7-xsl \
80+
php7-ldap \
81+
php7-bcmath \
82+
php7-memcached \
83+
php7-oauth \
84+
php7-apcu

0 commit comments

Comments
 (0)