This commit is contained in:
Iliyan Ivanov 2020-07-10 22:16:17 +03:00
commit a20acb2db1
Signed by: iliyan
GPG Key ID: A20B95830B5794F3
5 changed files with 152 additions and 0 deletions

34
.drone.yml Normal file
View File

@ -0,0 +1,34 @@
kind: pipeline
name: default
steps:
- name: build
image: docker
privileged: true
when:
branch:
- master
event:
- push
environment:
DOCKER_USERNAME:
from_secret: docker_username
DOCKER_PASSWORD:
from_secret: docker_password
commands:
- docker login -u $${DOCKER_USERNAME} -p $${DOCKER_PASSWORD} $${DOCKER_REGISTRY}
- docker image build -f ./nginx/Dockerfile -t $${DOCKER_REGISTRY}/laravel-php-fpm/nginx ./nginx
- docker image build -f ./php/Dockerfile -t $${DOCKER_REGISTRY}/laravel-php-fpm/php ./php
- |
docker image push $${DOCKER_REGISTRY}/laravel-php-fpm/nginx
docker image push $${DOCKER_REGISTRY}/laravel-php-fpm/php
docker image prune --force
volumes:
- name: docker_socket
path: /var/run/docker.sock
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock

11
build.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
DOCKER_REGISTRY=${1:-localhost:5000}
docker image build -t ${DOCKER_REGISTRY}/laravel-php-fpm/php -f php/Dockerfile ./php
docker image build -t ${DOCKER_REGISTRY}/laravel-php-fpm/nginx -f nginx/Dockerfile ./nginx
[ -z "$1" ] && exit
docker image push ${DOCKER_REGISTRY}/laravel-php-fpm/php
docker image push ${DOCKER_REGISTRY}/laravel-php-fpm/nginx

7
nginx/Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM nginx
ADD site.conf /etc/nginx/conf.d/default.conf
CMD usermod -u ${LARA_UID:-1000} nginx \
&& groupmod -g ${LARA_GUID:-1000} nginx \
&& nginx -g "daemon off;"

30
nginx/site.conf Normal file
View File

@ -0,0 +1,30 @@
server {
listen 80;
index index.php index.html;
server_name php-docker.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /www;
# rewire non-files to index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /www/public/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
real_ip_header X-Forwarded-For;
fastcgi_read_timeout 1200;
proxy_connect_timeout 1200;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
send_timeout 1200;
}
}

70
php/Dockerfile Normal file
View File

@ -0,0 +1,70 @@
FROM ubuntu:18.04
# it seems -y is not enough
ENV TERM=xterm \
TZ=Europe/Sofia \
DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
build-essential \
bzip2 \
ca-certificates \
curl \
git \
php-bcmath \
php-ctype \
php-curl \
php-dev \
php-fpm \
php-gd \
php-gearman \
php-geoip \
php-json \
php-mbstring \
php-memcache \
php-memcached \
php-mongodb \
php-mysql \
php-pdo \
php-pgsql \
php-redis \
php-sqlite3 \
php-xml \
php-xmlrpc \
php-zip \
phpunit \
unzip \
wget \
zip \
&& rm -rf /var/lib/apt/lists/*
# setup composer 1.8.5
RUN export COMPOSER_SHA256_SUM=4e4c1cd74b54a26618699f3190e6f5fc63bb308b13fa660f71f2a2df047c0e17 \
&& curl "https://getcomposer.org/download/1.8.5/composer.phar" -o /usr/local/bin/composer \
&& [ "$(sha256sum /usr/local/bin/composer | cut -d " " -f1)" = "$COMPOSER_SHA256_SUM" ] \
&& chmod +x /usr/local/bin/composer \
&& unset -v COMPOSER_SHA256_SUM
RUN ln -f -s /usr/share/zoneinfo/Europe/Sofia /etc/localtime
RUN mkdir -pv /run/php
# listen on all IPs
RUN sed -i 's#listen = /run/php/php7.2-fpm.sock#listen = 9000#g' /etc/php/7.2/fpm/pool.d/www.conf
# setup composer cache
RUN mkdir -pv /var/www/.composer
# setup volumes
VOLUME /var/www/.composer
WORKDIR /www
EXPOSE 9000
CMD usermod -u ${LARA_UID:-1000} www-data \
&& groupmod -g ${LARA_GUID:-1000} www-data \
&& chown www-data:www-data -Rc /var/www/.composer \
&& /usr/sbin/php-fpm7.2 -F