Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.git
vendor
public/content
docker-compose.*
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/.idea/
/app/config/config.ini
vendor
vendor
composer.lock
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ SimpleBannerRotator — это предельно минимизирован
E-mail: test@test.ru
Пароль: 4444

## Запуск в Docker
- `docker-compose build` - сборка образа
- `docker-copmose up` - запуск версии для разработки
- `docker-compose -f docker-compose.prod.yml up` - запуск production версии

## Использование
1. В шапку сайта, на котором требуется транслировать баннеры, нужно вставить основной скрипт баннеро-ротатора:

Expand Down
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"require": {
"robmorgan/phinx": "0.6.*"
}
}
33 changes: 33 additions & 0 deletions db/migrations/20170106222446_exec_sql_dump.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

use Phinx\Migration\AbstractMigration;

class ExecSqlDump extends AbstractMigration
{
/**
* Change Method.
*
* Write your reversible migrations using this method.
*
* More information on writing migrations is available here:
* http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
*
* The following commands can be used in this method and Phinx will
* automatically reverse them when rolling back:
*
* createTable
* renameTable
* addColumn
* renameColumn
* addIndex
* addForeignKey
*
* Remember to call "create()" or "update()" and NOT "save()" when working
* with the Table class.
*/
public function change()
{
$file = file_get_contents('./sql_dump.sql');
$this->execute($file);
}
}
55 changes: 55 additions & 0 deletions docker-compose.prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
version: '2'

services:
web:
image: nginx:latest
ports:
- 80:80
volumes_from:
- data
depends_on:
- php

php:
image: atnartur/php:5.6-fpm-phalcon2.0.13
working_dir: /srv/www/app
command: >
sh -c "./wait-for-it.sh db:3306 -t 30 &&
vendor/bin/phinx migrate -e docker &&
chmod 777 public/content &&
php-fpm -RF"
depends_on:
- db
volumes_from:
- data
volumes:
- files:/srv/www/app/public/content
- system-tmp:/tmp
db:
image: percona:latest
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: banners
MYSQL_USER: banners
MYSQL_PASSWORD: bannerspass
volumes:
- ./docker/mysql.cnf:/etc/mysql/conf.d/extra.cnf
- db:/var/lib/mysql

data:
build:
context: ./
dockerfile: ./docker/Dockerfile
volumes:
- /srv/www/app
- /etc/nginx

volumes:
system-tmp:
driver: local
db:
driver: local
files:
driver: local
54 changes: 54 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
version: '2'

services:
web:
image: nginx:latest
ports:
- 80:80
volumes_from:
- data
volumes:
- ./docker/nginx/:/etc/nginx/:ro
depends_on:
- php

php:
image: atnartur/php:5.6-fpm-phalcon2.0.13
working_dir: /srv/www/app
command: >
sh -c "php composer.phar update &&
./wait-for-it.sh db:3306 -t 30 &&
vendor/bin/phinx migrate -e docker &&
chmod 777 public/content &&
php-fpm -RF"
depends_on:
- db
volumes_from:
- data
volumes:
- system-tmp:/tmp
db:
image: percona:latest
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: banners
MYSQL_USER: banners
MYSQL_PASSWORD: bannerspass
volumes:
- ./docker/mysql.cnf:/etc/mysql/conf.d/extra.cnf
- db:/var/lib/mysql

data:
build:
context: ./
dockerfile: ./docker/Dockerfile
volumes:
- ./:/srv/www/app

volumes:
system-tmp:
driver: local
db:
driver: local
10 changes: 10 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM alpine:3.3
COPY ./docker/nginx /etc/nginx
COPY . /srv/www/app
WORKDIR /srv/www/app
RUN cp ./docker/config.ini /srv/www/app/app/config/config.ini && \
apk update && \
apk add --no-cache git php php-phar php-json php-ctype php-openssl && \
php composer.phar install && \
apk del git php php-phar php-json php-ctype php-openssl
CMD /bin/true
36 changes: 36 additions & 0 deletions docker/config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[app]
timezone = "Europe/Moscow"
locale = "ru_RU.utf-8"
controllersDir = "/controllers/"
modelsDir = "/models/"
viewsDir = "/views/"
libraryDir = "/library/"
cacheDir = "/cache/"
tasksDir = "/tasks/"
log = "/logs/log"
environment = "production"
;environment = "development"

[database]
host = "db"
username = "banners"
password = "bannerspass"
dbname = "banners"
charset = "utf8"

[auth]
hash_method = "sha256"
hash_key = "secret_key"
lifetime = 1209600
session_key = "auth_user"
session_role = "auth_user_role"

[session]
options[lifetime] = 1209600

[crypt]
key = "need_a_key_16sym"

[banners]
flashPath = "content/flash/"
imagePath = "content/images/"
2 changes: 2 additions & 0 deletions docker/mysql.cnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[mysqld]
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
25 changes: 25 additions & 0 deletions docker/nginx/fastcgi_params
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

fastcgi_param HTTPS $https if_not_empty;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
84 changes: 84 additions & 0 deletions docker/nginx/mime.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
types {
text/html html htm shtml;
text/css css;
text/xml xml rss;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
application/atom+xml atom;

text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;

image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg svgz;

application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.ms-excel xls;
application/vnd.ms-powerpoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/zip zip;

application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
#application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
application/ogg ogx;

audio/midi mid midi kar;
audio/mpeg mpga mpega mp2 mp3 m4a;
audio/ogg oga ogg spx;
audio/x-realaudio ra;
audio/webm weba;

video/3gpp 3gpp 3gp;
video/mp4 mp4;
video/mpeg mpeg mpg mpe;
video/ogg ogv;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;

application/x-font-ttf ttf;
application/font-otf otf;
application/octet-stream eot;
application/font-woff woff;
}
Loading