Docker file for setup PHP with laravel
#Container with basic php packages with laravel
FROM centos
MAINTAINER "Pankaj Kumar" [email protected]
WORKDIR /u01/data
RUN yum -y update
RUN yum -y install httpd httpd-tools php php-mbstring php-curl php-bcmath php-dom php-xml php-json zip unzip && yum clean all
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
RUN chmod +x /usr/local/bin/composer
RUN mkdir appdir
RUN cd appdir
RUN composer create-project laravel/laravel appname
RUN cd appname
COPY ./startlaravel.sh /u01/data/appname
##RUN php artisan key:generate
EXPOSE 80 8899
##RUN add bash
CMD ["cd appname"]
CMD ["/bin/php artisan key:generate"]
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
##CMD ["/usr/bin/php"] ["artisan serve"] ["--host 0.0.0.0"] ["--port=8899"]
##ENTRYPOINT ["/usr/bin/php artisan serve","--host 0.0.0.0","--port=8899"]
RUN chmod +x /u01/data/appname/startlaravel.sh
ENTRYPOINT ["/u01/data/appname/startlaravel.sh"]
startlaravel.sh contents below –
#!/bin/bash
cd /u01/data/appname
php artisan serve --host 0.0.0.0 --port=8899
Docker containers with yml files –
version: “3.9”
services:
dbdebril81:
image: mysql:5.7
volumes:
– ./db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: KstDeb2022Sept22
MYSQL_DATABASE: debrildb3
MYSQL_USER: debrilwpu3
MYSQL_PASSWORD: KstD3br1l2022Sept22
oel80php81:
tty: true
depends_on:
– dbdebril81
image: pankajrishi/oel8php8apache25:v4
## entrypoint: tail -f /dev/null
## command: httpd -f /etc/httpd/conf/httpd.conf
#command: dnf -y install mod_ssl
#command: httpd -f /etc/httpd/conf/httpd.conf &
#command: touch /etc/pki/tls/private/kst.debril.key
#command: touch /etc/pki/tls/certs/kst.debril.cert
entrypoint: tail -f /dev/null
#
#entrypoint: ./start-httpd-fpm.sh
volumes:
– ./configs/conf/httpd.conf:/etc/httpd/conf/httpd.conf
– ./configs/conf.d/ssl.conf:/etc/httpd/conf.d/ssl.conf
– ./certs/kst.debril.key:/etc/pki/tls/private/kst.debril.key
– ./certs/kst.debril.cert:/etc/pki/tls/certs/kst.debril.cert
– ./devdebril-wp:/var/www/html
– ./ik:/var/www/ik
– ./cs365:/var/www/cs365
– ./site5:/var/www/site5
– ./site6:/var/www/site6
– ./site6:/var/www/site6
– ./certs:/certs
## – ./logs/ssl_access_log:/var/log/httpd/ssl_access_log
##- ./logs/ssl_error_log:/var/log/httpd/ssl_error_log
ports:
– “443:443”
– “8088:8080”
restart: always
environment:
WORDPRESS_DB_HOST: dbdebril81
WORDPRESS_DB_USER: debrilwpu3
WORDPRESS_DB_PASSWORD: KstD3br1l2022Aug11
WORDPRESS_DB_NAME: debrildb11
volumes:
db3:
debrilwp3:
###Dockerfile example for php7 and php8
##Dockerfile for php7.4
##php:remi-7.4
#######################
##docker pull oraclelinux:8
FROM oraclelinux:8
##docker run -i -t –name guest oraclelinux:8 /bin/bash
COPY start-httpd-fpm.sh start-httpd-fpm.sh
COPY localhost.crt /etc/pki/tls/certs/
COPY localhost.key /etc/pki/tls/private/
RUN dnf update
RUN dnf install -y mod_ssl openssh
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
RUN dnf install -y –assumeyes https://rpms.remirepo.net/enterprise/remi-release-8.rpm
##RUN dnf install mod_ssl openssh
##RUN /bin/echo “yes” | dnf module list php
RUN printf ‘y\nyes\n’ | dnf module list php
##RUN dnf module enable php:remi-8.1
RUN echo “y” | dnf module enable php:remi-8.1
#RUN echo “y” | dnf module enable php:remi-7.4
RUN dnf install -y php php-cli php-common php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml
RUN dnf -y install httpd mod_ssl
RUN chmod +x ./start-httpd-fpm.sh
RUN ./start-httpd-fpm.sh
##RUN /usr/sbin/php-fpm
##RUN /usr/sbin/php-fpm -c /etc/php-fpm.conf
##RUN httpd -f /etc/httpd/conf/httpd.conf</code></pre>
DOCKER FILE with PHP installed inside
##Dockerfile for php7.4
##php:remi-7.4
#######################
##docker pull oraclelinux:8
FROM oraclelinux:8
##docker run -i -t –name guest oraclelinux:8 /bin/bash
COPY start-httpd-fpm.sh start-httpd-fpm.sh
COPY localhost.crt /etc/pki/tls/certs/
COPY localhost.key /etc/pki/tls/private/
RUN dnf update
RUN dnf install -y mod_ssl openssh
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
RUN dnf install -y –assumeyes https://rpms.remirepo.net/enterprise/remi-release-8.rpm
##RUN dnf install mod_ssl openssh
##RUN /bin/echo “yes” | dnf module list php
RUN printf ‘y\nyes\n’ | dnf module list php
##RUN dnf module enable php:remi-8.1
RUN echo “y” | dnf module enable php:remi-8.1
#RUN echo “y” | dnf module enable php:remi-7.4
RUN dnf install -y php php-cli php-common php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml
RUN dnf -y install httpd mod_ssl
RUN chmod +x ./start-httpd-fpm.sh
RUN ./start-httpd-fpm.sh
##RUN /usr/sbin/php-fpm
##RUN /usr/sbin/php-fpm -c /etc/php-fpm.conf
##RUN httpd -f /etc/httpd/conf/httpd.conf</code></pre>
Another Example for Dockerfile –
##Dockerfile for php7.4
##php:remi-7.4
#######################
##docker pull oraclelinux:8
FROM oraclelinux:8
##docker run -i -t –name guest oraclelinux:8 /bin/bash
COPY start-httpd-fpm.sh start-httpd-fpm.sh
COPY localhost.crt /etc/pki/tls/certs/
COPY localhost.key /etc/pki/tls/private/
RUN dnf update
RUN dnf install -y mod_ssl openssh
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
RUN dnf install -y –assumeyes https://rpms.remirepo.net/enterprise/remi-release-8.rpm
##RUN dnf install mod_ssl openssh
##RUN /bin/echo “yes” | dnf module list php
RUN printf ‘y\nyes\n’ | dnf module list php
##RUN dnf module enable php:remi-8.1
RUN echo “y” | dnf module enable php:remi-8.1
#RUN echo “y” | dnf module enable php:remi-7.4
RUN dnf install -y php php-cli php-common php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml
RUN dnf -y install httpd mod_ssl
RUN chmod +x ./start-httpd-fpm.sh
RUN ./start-httpd-fpm.sh
##RUN /usr/sbin/php-fpm
##RUN /usr/sbin/php-fpm -c /etc/php-fpm.conf
##RUN httpd -f /etc/httpd/conf/httpd.conf</code></pre>
Short Script to start Docker Container –
#!/bin/bash
##Written by Pankaj Kumar
containerid=$1
docker exec -it $1 bash