mirror of
				https://github.com/mashirozx/docker-php-nginx.git
				synced 2025-05-29 01:49:24 +08:00 
			
		
		
		
	Rewrote the example setup to have only one Docker container
This commit is contained in:
		
							parent
							
								
									fd5b5c096e
								
							
						
					
					
						commit
						16aaa4f31f
					
				
							
								
								
									
										12
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					env:
 | 
				
			||||||
 | 
					    global:
 | 
				
			||||||
 | 
					        - COMMIT=${TRAVIS_COMMIT::8}
 | 
				
			||||||
 | 
					        - REPO=trafex/php-nginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					script:
 | 
				
			||||||
 | 
					  - docker --version
 | 
				
			||||||
 | 
					  - export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "latest"; else echo $TRAVIS_BRANCH ; fi`
 | 
				
			||||||
 | 
					  - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
 | 
				
			||||||
 | 
					  - docker build -t $REPO:$COMMIT .
 | 
				
			||||||
 | 
					  - docker tag $REPO:$COMMIT $REPO:$TAG
 | 
				
			||||||
 | 
					  - docker push $REPO
 | 
				
			||||||
							
								
								
									
										30
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								Dockerfile
									
									
									
									
									
								
							@ -1,5 +1,31 @@
 | 
				
			|||||||
FROM debian:jessie
 | 
					FROM php:7.0-fpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install Nginx
 | 
				
			||||||
 | 
					ENV NGINX_VERSION 1.9.11-1~jessie
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
 | 
				
			||||||
 | 
						&& echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list \
 | 
				
			||||||
 | 
						&& apt-get update \
 | 
				
			||||||
 | 
						&& apt-get install -y ca-certificates nginx=${NGINX_VERSION} gettext-base \
 | 
				
			||||||
 | 
						&& rm -rf /var/lib/apt/lists/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install supervisor
 | 
				
			||||||
 | 
					RUN apt-get update && apt-get install -y supervisor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure nginx
 | 
				
			||||||
 | 
					RUN rm /etc/nginx/conf.d/default.conf
 | 
				
			||||||
 | 
					COPY config/nginx.conf /etc/nginx/conf.d/nginx.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure supervisor
 | 
				
			||||||
 | 
					COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure PHP-FPM
 | 
				
			||||||
 | 
					COPY config/php.ini /usr/local/etc/php/conf.d/custom.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add application
 | 
				
			||||||
 | 
					RUN mkdir -p /var/www/html
 | 
				
			||||||
 | 
					WORKDIR /var/www/html
 | 
				
			||||||
COPY src/ /var/www/html/
 | 
					COPY src/ /var/www/html/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VOLUME /var/www/html/
 | 
					EXPOSE 80 443
 | 
				
			||||||
 | 
					CMD ["/usr/bin/supervisord"]
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							@ -1,27 +1,14 @@
 | 
				
			|||||||
Docker PHP-FPM & Nginx setup
 | 
					Docker PHP-FPM & Nginx setup
 | 
				
			||||||
============================
 | 
					============================
 | 
				
			||||||
Example PHP-FPM & Nginx setup for Docker using docker-compose.
 | 
					Example PHP-FPM 7 & Nginx 1.9 setup for Docker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Usage
 | 
					Usage
 | 
				
			||||||
-----
 | 
					-----
 | 
				
			||||||
Add this to your hosts file:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    127.0.0.1 docker-app.dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Start the Docker containers:
 | 
					Start the Docker containers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    docker-compose up
 | 
					    sudo docker run -p 80:80 trafex/php-nginx
 | 
				
			||||||
 | 
					 | 
				
			||||||
See the PHP info on http://docker-app.dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Docker Hub
 | 
					 | 
				
			||||||
----------
 | 
					 | 
				
			||||||
The containers can be found on the Docker hub:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- [trafex/example-appdata](https://hub.docker.com/r/trafex/example-appdata)
 | 
					 | 
				
			||||||
- [trafex/example-nginx](https://hub.docker.com/r/trafex/example-nginx)
 | 
					 | 
				
			||||||
- [trafex/example-phpfpm](https://hub.docker.com/r/trafex/example-phpfpm)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See the PHP info on http://localhost, or the static html page on http://localhost/test.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Resources & inspiration
 | 
					Resources & inspiration
 | 
				
			||||||
-----------------------
 | 
					-----------------------
 | 
				
			||||||
 | 
				
			|||||||
@ -1,29 +1,22 @@
 | 
				
			|||||||
server {
 | 
					server {
 | 
				
			||||||
	listen   80; ## listen for ipv4; this line is default and implied
 | 
					    listen [::]:80 default_server;
 | 
				
			||||||
	listen   [::]:80 default ipv6only=on; ## listen for ipv6
 | 
					    listen 80 default_server;
 | 
				
			||||||
 | 
					    server_name _;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	root /var/www/html;
 | 
					 | 
				
			||||||
	index index.php index.html index.htm;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Make site accessible from http://localhost/
 | 
					 | 
				
			||||||
	server_name docker-app.dev;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.html
 | 
					 | 
				
			||||||
	sendfile off;
 | 
						sendfile off;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Add stdout logging
 | 
						root /var/www/html;
 | 
				
			||||||
 | 
						index index.php index.html;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    error_log /dev/stderr info;
 | 
					    error_log /dev/stderr info;
 | 
				
			||||||
	access_log /dev/stdout;
 | 
						access_log /dev/stdout;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	location / {
 | 
						location / {
 | 
				
			||||||
		# First attempt to serve request as file, then
 | 
							# First attempt to serve request as file, then
 | 
				
			||||||
		# as directory, then fall back to index.html
 | 
							# as directory, then fall back to index.php
 | 
				
			||||||
		try_files $uri $uri/ /index.php?q=$uri&$args;
 | 
							try_files $uri $uri/ /index.php?q=$uri&$args;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#error_page 404 /404.html;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# redirect server error pages to the static page /50x.html
 | 
						# redirect server error pages to the static page /50x.html
 | 
				
			||||||
    #
 | 
					    #
 | 
				
			||||||
	error_page 500 502 503 504 /50x.html;
 | 
						error_page 500 502 503 504 /50x.html;
 | 
				
			||||||
@ -36,7 +29,7 @@ server {
 | 
				
			|||||||
	location ~ \.php$ {
 | 
						location ~ \.php$ {
 | 
				
			||||||
        try_files $uri =404;
 | 
					        try_files $uri =404;
 | 
				
			||||||
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
 | 
							fastcgi_split_path_info ^(.+\.php)(/.+)$;
 | 
				
			||||||
		fastcgi_pass  UPSTREAM_HOST:UPSTREAM_PORT;
 | 
							fastcgi_pass  localhost:9000;
 | 
				
			||||||
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
							fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
				
			||||||
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
 | 
					        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
 | 
				
			||||||
		fastcgi_index index.php;
 | 
							fastcgi_index index.php;
 | 
				
			||||||
							
								
								
									
										16
									
								
								config/supervisord.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								config/supervisord.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					[supervisord]
 | 
				
			||||||
 | 
					nodaemon=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[program:php-fpm]
 | 
				
			||||||
 | 
					command=php-fpm
 | 
				
			||||||
 | 
					stdout_logfile=/dev/stdout
 | 
				
			||||||
 | 
					stdout_logfile_maxbytes=0
 | 
				
			||||||
 | 
					stderr_logfile=/dev/stderr
 | 
				
			||||||
 | 
					stderr_logfile_maxbytes=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[program:nginx]
 | 
				
			||||||
 | 
					command=nginx -g 'daemon off;'
 | 
				
			||||||
 | 
					stdout_logfile=/dev/stdout
 | 
				
			||||||
 | 
					stdout_logfile_maxbytes=0
 | 
				
			||||||
 | 
					stderr_logfile=/dev/stderr
 | 
				
			||||||
 | 
					stderr_logfile_maxbytes=0
 | 
				
			||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
appdata:
 | 
					 | 
				
			||||||
    build: .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fpm:
 | 
					 | 
				
			||||||
    build: ./fpm
 | 
					 | 
				
			||||||
    volumes_from:
 | 
					 | 
				
			||||||
        - appdata
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nginx:
 | 
					 | 
				
			||||||
    build: ./nginx
 | 
					 | 
				
			||||||
    links:
 | 
					 | 
				
			||||||
        - fpm
 | 
					 | 
				
			||||||
    volumes_from:
 | 
					 | 
				
			||||||
        - appdata
 | 
					 | 
				
			||||||
    ports:
 | 
					 | 
				
			||||||
        - 80:80
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
    - UPSTREAM_HOST=fpm
 | 
					 | 
				
			||||||
    - UPSTREAM_PORT=9000
 | 
					 | 
				
			||||||
@ -1,3 +0,0 @@
 | 
				
			|||||||
FROM php:7.0-fpm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY php.ini /usr/local/etc/php/conf.d/custom.ini
 | 
					 | 
				
			||||||
@ -1,9 +0,0 @@
 | 
				
			|||||||
FROM nginx:1.9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY nginx.conf /etc/nginx/conf.d/app.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD /bin/bash -c envsubst < /etc/nginx/conf.d/app.conf.template > /etc/nginx/conf.d/app.conf && nginx -g 'daemon off;'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD sed -i 's/UPSTREAM_HOST/'"$UPSTREAM_HOST"'/g' /etc/nginx/conf.d/app.conf \
 | 
					 | 
				
			||||||
 && sed -i 's/UPSTREAM_PORT/'"$UPSTREAM_PORT"'/g' /etc/nginx/conf.d/app.conf \
 | 
					 | 
				
			||||||
 && nginx -g 'daemon off;'
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								src/test.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/test.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					This should also work and be served by Nginx
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user