• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Dockerfile
  • License
    MIT License
  • Created about 9 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Nginx + PHP-FPM container image which can be linked to other containers.

Docker Pulls

Table of Contents

Installation

docker pull romeoz/docker-nginx-php

or other versions (7.3, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4 or 5.3):

docker pull romeoz/docker-nginx-php:7.1

Alternately you can build the image yourself.

git clone https://github.com/romeoz/docker-nginx-php.git
cd docker-nginx-php
docker build -t="$USER/docker-nginx-php" .

Quick Start

Run the application container:

docker run --name app -d -p 8080:80 romeoz/docker-nginx-php

The simplest way to login to the app container is to use the docker exec command to attach a new process to the running container.

docker exec -it app bash

Development/Persistence

For development a volume should be mounted at /var/www/app/.

The updated run command looks like this.

docker run --name app -d -p 8080:80 \
  -v /host/to/path/app:/var/www/app/ \
  romeoz/docker-nginx-php

This will make the development.

Linked to other container

As an example, will link with RDBMS PostgreSQL.

docker network create pg_net

docker run --name db -d --net pg_net romeoz/docker-postgresql

Run the application container:

docker run --name app -d -p 8080:80 \
  --net pg_net \
  -v /host/to/path/app:/var/www/app/ \
  romeoz/docker-nginx-php

Adding PHP-extension

You can use one of two choices to install the required php-extensions:

  1. docker exec -it app bash -c 'apt-get update && apt-get install php-mongo && rm -rf /var/lib/apt/lists/*'

  2. Create your container on based the current. Π‘ontents Dockerfile:

FROM romeoz/docker-nginx-php:5.6

RUN apt-get update \
    && apt-get install -y php-mongo \
    && rm -rf /var/lib/apt/lists/* 

WORKDIR /var/www/app/

EXPOSE 80 443

CMD ["/usr/bin/supervisord"]

Next step,

docker build -t php-5.6 .
docker run --name app -d -p 8080:80 php-5.6

See installed php-extension: docker exec -it app php -m

Logging

All the logs are forwarded to stdout and sterr. You have use the command docker logs.

docker logs app

####Split the logs

You can then simply split the stdout & stderr of the container by piping the separate streams and send them to files:

docker logs app > stdout.log 2>stderr.log
cat stdout.log
cat stderr.log

or split stdout and error to host stdout:

docker logs app > -
docker logs app 2> -

####Rotate logs

Create the file /etc/logrotate.d/docker-containers with the following text inside:

/var/lib/docker/containers/*/*.log {
    rotate 31
    daily
    nocompress
    missingok
    notifempty
    copytruncate
}

Optionally, you can replace nocompress to compress and change the number of days.

Out of the box

  • Ubuntu 12.04, 14.04, 16.04 or 18.04 LTS
  • Nginx 1.14
  • PHP 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2 or 7.3
  • Composer (package manager)

Environment depends on the version of PHP.

License

Nginx + PHP-FPM docker image is open-sourced software licensed under the MIT license

More Repositories

1

docker-apache-php

Apache + PHP container image which can be linked to other containers.
Dockerfile
182
star
2

rock-sanitize

Flexible sanitizator for PHP.
PHP
47
star
3

docker-sphinxsearch

Sphinx Search container image which can be linked to other containers.
Shell
29
star
4

rock-validate

Flexible validator for PHP with I18N.
PHP
25
star
5

docker-postgresql

PostgreSQL container image which can be linked to other containers.
Shell
22
star
6

docker-mysql

MySQL container image which can be linked to other containers.
Shell
19
star
7

docker-phpfpm

PHP-FPM container image which can be linked to other containers.
Dockerfile
16
star
8

docker-redis

Redis container image which can be linked to other containers.
Shell
9
star
9

rock

The Rock PHP framework.
PHP
6
star
10

docker-mongodb

MongoDB container image which can be linked to other containers.
Shell
6
star
11

rock-cache

Unified API for key-value storages in memory. As a storage can be used: APC, Redis, Memcached, Couchbase or MongoDB.
PHP
6
star
12

rock-db

Object Relational Mapping (ORM) for PHP
PHP
5
star
13

rock-template

Flexible template engine for PHP with MODx-like syntax.
PHP
3
star
14

rock-i18n

i18n library for PHP
PHP
2
star
15

docker-nginx

Nginx container image which can be linked to other containers.
Dockerfile
2
star
16

rock-mq

Unified API for message queue services
PHP
2
star
17

docker-memcached

Memcached container image which can be linked to other containers.
Shell
2
star
18

rock-security

Security module for Rock Framework
PHP
1
star
19

docker-rock-validate

Demo for "Rock validate"
PHP
1
star
20

rock-sphinx

Object Relational Mapping (ORM) for Sphinx Search
PHP
1
star
21

docker-rock-sanitize

Demo for "Rock sanitize"
PHP
1
star
22

rock-mongodb

Object Document Mapper (ODM) for MongoDB
PHP
1
star
23

rock-morphy

[READ ONLY] Morphy module for Rock Framework
PHP
1
star
24

rock-route

Simple router for PHP
PHP
1
star
25

rock-helpers

Helpers for Rock Framework.
PHP
1
star