Update for installing magento through github
This commit is contained in:
parent
a6c46c3edf
commit
984e3d9b4d
22 changed files with 752 additions and 3 deletions
|
@ -36,10 +36,10 @@ git log --color=always --graph --pretty="tformat:${FORMAT}" $* |
|
||||||
sed -Ee 's/(^[^<]*) ago\)/\1)/' |
|
sed -Ee 's/(^[^<]*) ago\)/\1)/' |
|
||||||
# Replace (2 years, 5 months) with (2 years)
|
# Replace (2 years, 5 months) with (2 years)
|
||||||
sed -Ee 's/(^[^<]*), [[:digit:]]+ .*months?\)/\1)/' |
|
sed -Ee 's/(^[^<]*), [[:digit:]]+ .*months?\)/\1)/' |
|
||||||
# Line columns up based on } delimiter
|
|
||||||
column -s '}' -t |
|
|
||||||
# Color merge commits specially
|
# Color merge commits specially
|
||||||
sed -Ee "s/(Merge (branch|remote-tracking branch|pull request) .*$)/$(printf $ANSI_RED)\1$(printf $ANSI_RESET)/" |
|
sed -Ee "s/(Merge (branch|remote-tracking branch|pull request) .*$)/$(printf $ANSI_RED)\1$(printf $ANSI_RESET)/" |
|
||||||
|
# Line columns up based on } delimiter
|
||||||
|
column -s '}' -t |
|
||||||
# Page only if we're asked to.
|
# Page only if we're asked to.
|
||||||
if [ -n "$GIT_NO_PAGER" ]; then
|
if [ -n "$GIT_NO_PAGER" ]; then
|
||||||
cat
|
cat
|
||||||
|
|
|
@ -17,7 +17,7 @@ def find_root(filename, starting_dir=None):
|
||||||
|
|
||||||
candidate_file = path.join(starting_dir, filename)
|
candidate_file = path.join(starting_dir, filename)
|
||||||
|
|
||||||
if (path.isfile(candidate_file)):
|
if (path.isfile(candidate_file) or path.isdir(candidate_file)):
|
||||||
return starting_dir
|
return starting_dir
|
||||||
elif starting_dir == '/':
|
elif starting_dir == '/':
|
||||||
raise IOError('File not found in any directory')
|
raise IOError('File not found in any directory')
|
||||||
|
|
47
share/workflow-github/.docker/certs/cert0.pem
Normal file
47
share/workflow-github/.docker/certs/cert0.pem
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEA2wa+9FzdlSLoiMlHh7h6bTVtN2FC70QGKVGCr7cw2CDHnsnD
|
||||||
|
TEC0HeDNMRZ9byXU0uRBDAeixSMJK+qhHGoVwqVv63XdH6Vk4M/Nc3fta/rWXNVm
|
||||||
|
wBJM3k+uA6vQ17CTXmq5N5SOi5Yp2CY77dZ1V6BtihOz/8WeZIXR8P+cQYbxHh4Z
|
||||||
|
yNLoqISfdmrar71/D6KvoiD7kQSIqsW8w8/ZIBrF7fe7GCA/xefV6N3PSxwbNQEF
|
||||||
|
BfF+SKs6blfiWl9rmYrZKR8pKc2GvryAR1o+QAH2dnzDsiYU//IMP4+efl4/CNH+
|
||||||
|
CnX8S7WCvIlWntrHJ+4J6Rs+CAg+Qj/orgJc5QIDAQABAoIBACiONDd9Jo5h21rQ
|
||||||
|
ok0QLKMiHGn/uWwiVV27OQ6eRg4O68eMJnxtEqzhnjzzpCA7ig/OsfivRUVpel5G
|
||||||
|
YLSpNARJq9KWjW45qtcxwyIZV74BwUWJQjBYcyFK8ba+TrpReMgnzMns2QQhtvfO
|
||||||
|
BJTCfBHQo9fIVDEM/4oveTM9sUo0gZj1LngZwYU7KhwsoK4xGB/c01VtORXN0Cxv
|
||||||
|
5xxIRbw88EntSJi8nzr6Jb6ceo6ugqkRUpr3M4nycgzCej0P2w45VYT5cuuYnLCJ
|
||||||
|
vKh60jtB4+/x6/VIwB85f3E4TisxZ/FurNVTbL/ckpxf3fEdGJ0h8yX8wjxRyyML
|
||||||
|
SR+v/vUCgYEA9jJTQVx9Y1KaaZVcmXOakGEwTXyazEkG7UjwJ8akY9xEkD+85SHX
|
||||||
|
xAXsV0u/GUXp8Mzee/ekfq5//c111WWJzwJVb8keEcyHm4rhnuP4K3dIBRlc7oWg
|
||||||
|
0iFes4pKLJf+3cYCgMwcE3BWHdU8oxKChZKBiysE15o67CevvE1lbkMCgYEA4790
|
||||||
|
Br56JsiZcqDjHdbxlQY6dChBQNUgA9gjmsPtoBRARO+Su1alI0K6Ortd7qN6U+6/
|
||||||
|
tR6MfJ0vmpCLJ/118FcRjce75gp7Lh2skhALNMShkqVsXv1gi6wZ0ci0vT6Kr+kI
|
||||||
|
sixkn/FuqF6hLyZt3T8LfV9jtlbDu8buATyUGbcCgYEA42b8i6TYlINZ6ShzDbJA
|
||||||
|
FBgRO6FaglL5uPbkDHloomx0UCDvY11tJLyr3r4yVy/CtA8nea32HKUlx9Kdgmx1
|
||||||
|
a+Yl8Ej+I0aeA0e2usKrGcrllQAmXJLFRxJXnNKhTKtgWIxrB3iAflwGzyuFBMM2
|
||||||
|
GBaI3Xjw0gy9XCAULIP4qm0CgYEAyJRaZIInZLbxZiJKRIKEu8IDgz/c0HOjwZ7/
|
||||||
|
JJQAWSbcv5nbugCCaj6fc5CHFuCFoRw5XROtmSZ6wX8h/7NbxrN4M01AsEZ03FWo
|
||||||
|
Ie/dXrj6sAPfIP24pOqKxtckTzOgw3LShNFSQgdJdSH6hWMsCVo4DVAQqotZ0axO
|
||||||
|
+2nV6ZsCgYBjiaowVqf/PsnDdGYciezCxVJ2GwHsO47QaNzjLfyVkd9ueNefrIlg
|
||||||
|
CLE5BBB4BK45ZWuO7Dk0F92ytUZ8Pi2/48fIRn+C+j9oRlmHKLgHiGhnoWLPXDYS
|
||||||
|
z48hmO/g56d0472FXC5OqBqRVsu8MPXPyxdDoMJIGQL5F5dbfk+yfg==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDWzCCAkOgAwIBAgIJAJc1JICrjnAPMA0GCSqGSIb3DQEBBQUAMCcxCjAIBgNV
|
||||||
|
BAMUASoxDDAKBgNVBAoTA0pILjELMAkGA1UEBhMCVUswHhcNMTcxMDI1MTczOTQ0
|
||||||
|
WhcNMjAxMDA5MTczOTQ0WjAnMQowCAYDVQQDFAEqMQwwCgYDVQQKEwNKSC4xCzAJ
|
||||||
|
BgNVBAYTAlVLMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2wa+9Fzd
|
||||||
|
lSLoiMlHh7h6bTVtN2FC70QGKVGCr7cw2CDHnsnDTEC0HeDNMRZ9byXU0uRBDAei
|
||||||
|
xSMJK+qhHGoVwqVv63XdH6Vk4M/Nc3fta/rWXNVmwBJM3k+uA6vQ17CTXmq5N5SO
|
||||||
|
i5Yp2CY77dZ1V6BtihOz/8WeZIXR8P+cQYbxHh4ZyNLoqISfdmrar71/D6KvoiD7
|
||||||
|
kQSIqsW8w8/ZIBrF7fe7GCA/xefV6N3PSxwbNQEFBfF+SKs6blfiWl9rmYrZKR8p
|
||||||
|
Kc2GvryAR1o+QAH2dnzDsiYU//IMP4+efl4/CNH+CnX8S7WCvIlWntrHJ+4J6Rs+
|
||||||
|
CAg+Qj/orgJc5QIDAQABo4GJMIGGMB0GA1UdDgQWBBQu2vjcFNPDjsGiIedr0euY
|
||||||
|
Rw9UxzBXBgNVHSMEUDBOgBQu2vjcFNPDjsGiIedr0euYRw9Ux6ErpCkwJzEKMAgG
|
||||||
|
A1UEAxQBKjEMMAoGA1UEChMDSkguMQswCQYDVQQGEwJVS4IJAJc1JICrjnAPMAwG
|
||||||
|
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMs7PIfwyOS6iOaDMi8TB8Tj
|
||||||
|
AYVzndQh10+kaZbmfqSwW5P/WKmj+jIgv7E5BixA3olmMqReZTpLa58AT+Afj+3D
|
||||||
|
hN4WPC9AXtp3eE3/rYFMzMuV4qpKa1+J9BPvFUX7ezMkABSxpzH1aCu39wvRgLTd
|
||||||
|
aDenrWOR8FrGQS6q5qfRUEA/73NZDCfjKv9hqNaxp5+5SZpD23U26jbD+iFnv52I
|
||||||
|
4iIwlMc3eCpnOx9ZvaScbtYtvinkg2/xBpOQxanasw/48vI+NnGvfp/sjzSVnPo/
|
||||||
|
jlV2yR8UWuw9nMdz7oIvK2DLDfoIM76qg75CgzZ0D9rdlSwvhfr/Z3NYQRK+M48=
|
||||||
|
-----END CERTIFICATE-----
|
0
share/workflow-github/.docker/composer-cache/.gitkeep
Normal file
0
share/workflow-github/.docker/composer-cache/.gitkeep
Normal file
1
share/workflow-github/.docker/composer-cache/.htaccess
Normal file
1
share/workflow-github/.docker/composer-cache/.htaccess
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Deny from all
|
0
share/workflow-github/.docker/db/.gitkeep
Normal file
0
share/workflow-github/.docker/db/.gitkeep
Normal file
41
share/workflow-github/.docker/local.env
Normal file
41
share/workflow-github/.docker/local.env
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Copy to local.env and store on local machine
|
||||||
|
|
||||||
|
# Host Config
|
||||||
|
MAGE_ROOT_DIR=/var/www
|
||||||
|
MAGE_HOST=https://jml.m2
|
||||||
|
MAGE_ADMIN_USER=admin
|
||||||
|
MAGE_ADMIN_PASS=password123
|
||||||
|
MAGE_ADMIN_FIRSTNAME=Joe
|
||||||
|
MAGE_ADMIN_LASTNAME=Bloggs
|
||||||
|
MAGE_ADMIN_EMAIL=magento@wearejh.com
|
||||||
|
MAGE_BACKEND_FRONTNAME=admin
|
||||||
|
HTTPS=on
|
||||||
|
|
||||||
|
# MySQL Details
|
||||||
|
MYSQL_ROOT_PASSWORD=docker
|
||||||
|
MYSQL_DATABASE=docker
|
||||||
|
MYSQL_USER=docker
|
||||||
|
MYSQL_PASSWORD=docker
|
||||||
|
|
||||||
|
# PHP
|
||||||
|
PHP_MEMORY_LIMIT=2G
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
RABBITMQ_DEFAULT_USER=user
|
||||||
|
RABBITMQ_DEFAULT_PASS=password
|
||||||
|
|
||||||
|
## Mail config
|
||||||
|
MAIL_HOST=mail
|
||||||
|
MAIL_PORT=1025
|
||||||
|
|
||||||
|
## Xdebug config
|
||||||
|
XDEBUG_IDE_KEY=PHPSTORM
|
||||||
|
XDEBUG_CONFIG=remote_host=docker.for.mac.host.internal
|
||||||
|
XDEBUG_ENABLE=true
|
||||||
|
PHP_IDE_CONFIG=serverName=jml.m2
|
||||||
|
|
||||||
|
# Blackfire
|
||||||
|
BLACKFIRE_CLIENT_ID=
|
||||||
|
BLACKFIRE_CLIENT_TOKEN=
|
||||||
|
BLACKFIRE_SERVER_ID=
|
||||||
|
BLACKFIRE_SERVER_TOKEN=
|
41
share/workflow-github/.docker/local.env.dist
Normal file
41
share/workflow-github/.docker/local.env.dist
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Copy to local.env and store on local machine
|
||||||
|
|
||||||
|
# Host Config
|
||||||
|
MAGE_ROOT_DIR=/var/www
|
||||||
|
MAGE_HOST=https://jml.m2
|
||||||
|
MAGE_ADMIN_USER=admin
|
||||||
|
MAGE_ADMIN_PASS=password123
|
||||||
|
MAGE_ADMIN_FIRSTNAME=Joe
|
||||||
|
MAGE_ADMIN_LASTNAME=Bloggs
|
||||||
|
MAGE_ADMIN_EMAIL=magento@wearejh.com
|
||||||
|
MAGE_BACKEND_FRONTNAME=admin
|
||||||
|
HTTPS=on
|
||||||
|
|
||||||
|
# MySQL Details
|
||||||
|
MYSQL_ROOT_PASSWORD=docker
|
||||||
|
MYSQL_DATABASE=docker
|
||||||
|
MYSQL_USER=docker
|
||||||
|
MYSQL_PASSWORD=docker
|
||||||
|
|
||||||
|
# PHP
|
||||||
|
PHP_MEMORY_LIMIT=2G
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
RABBITMQ_DEFAULT_USER=user
|
||||||
|
RABBITMQ_DEFAULT_PASS=password
|
||||||
|
|
||||||
|
## Mail config
|
||||||
|
MAIL_HOST=mail
|
||||||
|
MAIL_PORT=1025
|
||||||
|
|
||||||
|
## Xdebug config
|
||||||
|
XDEBUG_IDE_KEY=PHPSTORM
|
||||||
|
XDEBUG_CONFIG=remote_host=docker.for.mac.host.internal
|
||||||
|
XDEBUG_ENABLE=true
|
||||||
|
PHP_IDE_CONFIG=serverName=jml.m2
|
||||||
|
|
||||||
|
# Blackfire
|
||||||
|
BLACKFIRE_CLIENT_ID=
|
||||||
|
BLACKFIRE_CLIENT_TOKEN=
|
||||||
|
BLACKFIRE_SERVER_ID=
|
||||||
|
BLACKFIRE_SERVER_TOKEN=
|
179
share/workflow-github/.docker/nginx/sites/site.conf
Normal file
179
share/workflow-github/.docker/nginx/sites/site.conf
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
upstream fastcgi_backend {
|
||||||
|
server php:9000;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
set $MAGE_ROOT /var/www;
|
||||||
|
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
|
||||||
|
root $MAGE_ROOT/pub;
|
||||||
|
|
||||||
|
index index.php;
|
||||||
|
autoindex off;
|
||||||
|
charset UTF-8;
|
||||||
|
error_page 404 403 = /errors/404.php;
|
||||||
|
#add_header "X-UA-Compatible" "IE=Edge";
|
||||||
|
|
||||||
|
# PHP entry point for setup application
|
||||||
|
location ~* ^/setup($|/) {
|
||||||
|
root $MAGE_ROOT;
|
||||||
|
location ~ ^/setup/index.php {
|
||||||
|
fastcgi_pass fastcgi_backend;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/setup/(?!pub/). {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/setup/pub/ {
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# PHP entry point for update application
|
||||||
|
location ~* ^/update($|/) {
|
||||||
|
root $MAGE_ROOT;
|
||||||
|
|
||||||
|
location ~ ^/update/index.php {
|
||||||
|
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
|
||||||
|
fastcgi_pass fastcgi_backend;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deny everything but index.php
|
||||||
|
location ~ ^/update/(?!pub/). {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/update/pub/ {
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /pub/ {
|
||||||
|
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
alias $MAGE_ROOT/pub/;
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
}
|
||||||
|
|
||||||
|
location /static/ {
|
||||||
|
# Uncomment the following line in production mode
|
||||||
|
# expires max;
|
||||||
|
|
||||||
|
# Remove signature of the static files that is used to overcome the browser cache
|
||||||
|
location ~ ^/static/version {
|
||||||
|
rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
expires +1y;
|
||||||
|
|
||||||
|
if (!-f $request_filename) {
|
||||||
|
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
|
||||||
|
add_header Cache-Control "no-store";
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
expires off;
|
||||||
|
|
||||||
|
if (!-f $request_filename) {
|
||||||
|
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!-f $request_filename) {
|
||||||
|
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
|
||||||
|
}
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
}
|
||||||
|
|
||||||
|
location /media/ {
|
||||||
|
try_files $uri $uri/ /get.php?$args;
|
||||||
|
|
||||||
|
location ~ ^/media/theme_customization/.*\.xml {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
expires +1y;
|
||||||
|
try_files $uri $uri/ /get.php?$args;
|
||||||
|
}
|
||||||
|
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
|
||||||
|
add_header Cache-Control "no-store";
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
expires off;
|
||||||
|
try_files $uri $uri/ /get.php?$args;
|
||||||
|
}
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
}
|
||||||
|
|
||||||
|
location /media/customer/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /media/downloadable/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /media/import/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
# PHP entry point for main application
|
||||||
|
location ~ (index|get|static|report|404|503|health_check)\.php$ {
|
||||||
|
try_files $uri =404;
|
||||||
|
fastcgi_pass fastcgi_backend;
|
||||||
|
fastcgi_buffers 1024 4k;
|
||||||
|
|
||||||
|
fastcgi_read_timeout 600s;
|
||||||
|
fastcgi_connect_timeout 600s;
|
||||||
|
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
|
||||||
|
gzip_comp_level 6;
|
||||||
|
gzip_min_length 1100;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_types
|
||||||
|
text/plain
|
||||||
|
text/css
|
||||||
|
text/js
|
||||||
|
text/xml
|
||||||
|
text/javascript
|
||||||
|
application/javascript
|
||||||
|
application/x-javascript
|
||||||
|
application/json
|
||||||
|
application/xml
|
||||||
|
application/xml+rss
|
||||||
|
image/svg+xml;
|
||||||
|
gzip_vary on;
|
||||||
|
|
||||||
|
# Banned locations (only reached if the earlier PHP entry point regexes don't match)
|
||||||
|
location ~* (\.php$|\.htaccess$|\.git) {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
68
share/workflow-github/.docker/php/Dockerfile
Normal file
68
share/workflow-github/.docker/php/Dockerfile
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
FROM php:7.1-fpm
|
||||||
|
MAINTAINER Michael Woodward <michael@wearejh.com>
|
||||||
|
|
||||||
|
ARG BUILD_ENV=dev
|
||||||
|
ENV PROD_ENV=prod
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
cron \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libicu-dev \
|
||||||
|
libjpeg62-turbo-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
libpng12-dev \
|
||||||
|
libxslt1-dev \
|
||||||
|
gettext \
|
||||||
|
msmtp \
|
||||||
|
git \
|
||||||
|
vim
|
||||||
|
|
||||||
|
RUN docker-php-ext-configure \
|
||||||
|
gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
|
||||||
|
|
||||||
|
RUN docker-php-ext-install \
|
||||||
|
gd \
|
||||||
|
intl \
|
||||||
|
mbstring \
|
||||||
|
mcrypt \
|
||||||
|
pdo_mysql \
|
||||||
|
xsl \
|
||||||
|
zip \
|
||||||
|
soap \
|
||||||
|
bcmath \
|
||||||
|
mysqli \
|
||||||
|
opcache \
|
||||||
|
pcntl
|
||||||
|
|
||||||
|
# Xdebug
|
||||||
|
RUN [ "$BUILD_ENV" != "$PROD_ENV" ] && pecl install -o -f xdebug-2.5.0; true
|
||||||
|
|
||||||
|
# Blackfire
|
||||||
|
RUN [ "$BUILD_ENV" != "$PROD_ENV" ] \
|
||||||
|
&& version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
||||||
|
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
||||||
|
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||||
|
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
||||||
|
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini; \
|
||||||
|
true
|
||||||
|
|
||||||
|
# Configuration files
|
||||||
|
COPY .docker/php/etc/custom.template .docker/php/etc/xdebug.template /usr/local/etc/php/conf.d/
|
||||||
|
COPY .docker/php/etc/msmtprc.template /etc/msmtprc.template
|
||||||
|
|
||||||
|
# Copy in Entrypoint file & Magento installation script
|
||||||
|
COPY .docker/php/bin/docker-configure .docker/php/bin/magento-install .docker/php/bin/magento-configure /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-configure /usr/local/bin/magento-install /usr/local/bin/magento-configure
|
||||||
|
|
||||||
|
# Composer
|
||||||
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||||
|
|
||||||
|
COPY . /var/www
|
||||||
|
|
||||||
|
RUN chsh -s /bin/bash www-data
|
||||||
|
|
||||||
|
VOLUME ["/var/www"]
|
||||||
|
WORKDIR "/var/www"
|
||||||
|
ENTRYPOINT ["/usr/local/bin/docker-configure"]
|
||||||
|
CMD ["php-fpm"]
|
15
share/workflow-github/.docker/php/bin/docker-configure
Normal file
15
share/workflow-github/.docker/php/bin/docker-configure
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
envsubst < "/usr/local/etc/php/conf.d/xdebug.template" > "/usr/local/etc/php/conf.d/xdebug.ini"
|
||||||
|
envsubst < "/usr/local/etc/php/conf.d/custom.template" > "/usr/local/etc/php/conf.d/custom.ini"
|
||||||
|
envsubst < "/etc/msmtprc.template" > "/etc/msmtprc"
|
||||||
|
|
||||||
|
rm /usr/local/etc/php/conf.d/xdebug.template
|
||||||
|
rm /usr/local/etc/php/conf.d/custom.template
|
||||||
|
rm /etc/msmtprc.template
|
||||||
|
|
||||||
|
[ "$XDEBUG_ENABLE" = "true" ] && \
|
||||||
|
docker-php-ext-enable xdebug && \
|
||||||
|
echo "Xdebug is enabled"
|
||||||
|
|
||||||
|
exec "$@"
|
75
share/workflow-github/.docker/php/bin/magento-configure
Normal file
75
share/workflow-github/.docker/php/bin/magento-configure
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
# Configure env.php
|
||||||
|
$config = include 'app/etc/env.php';
|
||||||
|
|
||||||
|
$isProduction = array_search('-p', $argv, true);
|
||||||
|
|
||||||
|
$config['session'] = [
|
||||||
|
'save' => 'redis',
|
||||||
|
'redis' =>
|
||||||
|
[
|
||||||
|
'host' => 'redis',
|
||||||
|
'port' => '6379',
|
||||||
|
'password' => '',
|
||||||
|
'timeout' => '2.5',
|
||||||
|
'persistent_identifier' => '',
|
||||||
|
'database' => '0',
|
||||||
|
'compression_threshold' => '2048',
|
||||||
|
'compression_library' => 'gzip',
|
||||||
|
'log_level' => '1',
|
||||||
|
'max_concurrency' => '6',
|
||||||
|
'break_after_frontend' => '5',
|
||||||
|
'break_after_adminhtml' => '30',
|
||||||
|
'first_lifetime' => '600',
|
||||||
|
'bot_first_lifetime' => '60',
|
||||||
|
'bot_lifetime' => '7200',
|
||||||
|
'disable_locking' => '0',
|
||||||
|
'min_lifetime' => '60',
|
||||||
|
'max_lifetime' => '2592000'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
$config['cache'] = [
|
||||||
|
'frontend' =>
|
||||||
|
[
|
||||||
|
'default' =>
|
||||||
|
[
|
||||||
|
'backend' => 'Cm_Cache_Backend_Redis',
|
||||||
|
'backend_options' =>
|
||||||
|
[
|
||||||
|
'server' => 'redis',
|
||||||
|
'port' => '6379',
|
||||||
|
'database' => '1'
|
||||||
|
],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
$config['MAGE_MODE'] = $isProduction ? 'production' : 'developer';
|
||||||
|
|
||||||
|
$contents = <<<FILE
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return %s;
|
||||||
|
FILE;
|
||||||
|
|
||||||
|
file_put_contents('app/etc/env.php', sprintf($contents, var_export($config, true)));
|
||||||
|
|
||||||
|
# Configure Varnish
|
||||||
|
$sql = <<<SQL
|
||||||
|
DELETE FROM `core_config_data` WHERE `path` like 'system/full_page_cache%';
|
||||||
|
INSERT INTO `core_config_data` (`scope`, `scope_id`, `path`, `value`)
|
||||||
|
VALUES
|
||||||
|
('default', 0, 'system/full_page_cache/caching_application', '2'),
|
||||||
|
('default', 0, 'system/full_page_cache/varnish/access_list', 'php, nginx, varnish'),
|
||||||
|
('default', 0, 'system/full_page_cache/varnish/backend_host', 'nginx'),
|
||||||
|
('default', 0, 'system/full_page_cache/varnish/backend_port', '80'),
|
||||||
|
('default', 0, 'system/full_page_cache/varnish/grace_period', '300');
|
||||||
|
SQL;
|
||||||
|
|
||||||
|
$dsn = sprintf('mysql:host=db;dbname=%s', $_ENV['MYSQL_DATABASE']);
|
||||||
|
$pdo = new PDO($dsn, $_ENV['MYSQL_USER'], $_ENV['MYSQL_PASSWORD']);
|
||||||
|
|
||||||
|
$pdo->exec($sql);
|
31
share/workflow-github/.docker/php/bin/magento-install
Normal file
31
share/workflow-github/.docker/php/bin/magento-install
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd /var/www
|
||||||
|
|
||||||
|
echo "Installing Magento..."
|
||||||
|
|
||||||
|
bin/magento setup:install \
|
||||||
|
--db-host=db \
|
||||||
|
--db-name=$MYSQL_DATABASE \
|
||||||
|
--db-user=$MYSQL_USER \
|
||||||
|
--db-password=$MYSQL_PASSWORD \
|
||||||
|
--base-url=$MAGE_HOST \
|
||||||
|
--base-url-secure=$MAGE_HOST \
|
||||||
|
--admin-firstname=$MAGE_ADMIN_FIRSTNAME \
|
||||||
|
--admin-lastname=$MAGE_ADMIN_LASTNAME \
|
||||||
|
--admin-email=$MAGE_ADMIN_EMAIL \
|
||||||
|
--admin-user=$MAGE_ADMIN_USER \
|
||||||
|
--admin-password=$MAGE_ADMIN_PASS \
|
||||||
|
--backend-frontname=$MAGE_BACKEND_FRONTNAME \
|
||||||
|
--use-secure=1 \
|
||||||
|
--use-secure-admin=1 \
|
||||||
|
--cleanup-database -vvv \
|
||||||
|
|| { exit 1; }
|
||||||
|
|
||||||
|
bin/magento index:reindex && \
|
||||||
|
bin/magento dev:source-theme:deploy --area="adminhtml" --theme="Magento/backend" css/styles-old css/styles && \
|
||||||
|
bin/magento dev:source-theme:deploy --theme="Magento/blank" css/styles-m css/styles-l css/email css/email-inline && \
|
||||||
|
bin/magento dev:source-theme:deploy && \
|
||||||
|
bin/magento setup:static-content:deploy
|
||||||
|
|
||||||
|
echo "Installation complete ᕦ( ̿ ̿ - ̿ ̿ )つ"
|
9
share/workflow-github/.docker/php/etc/custom.template
Normal file
9
share/workflow-github/.docker/php/etc/custom.template
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
memory_limit = ${PHP_MEMORY_LIMIT};
|
||||||
|
session.auto_start=off;
|
||||||
|
suhosin.session.cryptua=off;
|
||||||
|
sendmail_path=/usr/bin/msmtp -t;
|
||||||
|
opcache.enable=1
|
||||||
|
opcache.enable_cli=1
|
||||||
|
opcache.save_comments=1
|
||||||
|
opcache.max_accelerated_files=65406
|
||||||
|
opcache.memory_consumption=256
|
4
share/workflow-github/.docker/php/etc/msmtprc.template
Normal file
4
share/workflow-github/.docker/php/etc/msmtprc.template
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
account default
|
||||||
|
host ${MAIL_HOST}
|
||||||
|
port ${MAIL_PORT}
|
||||||
|
auto_from on
|
5
share/workflow-github/.docker/php/etc/xdebug.template
Normal file
5
share/workflow-github/.docker/php/etc/xdebug.template
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
xdebug.remote_enable = 1
|
||||||
|
xdebug.remote_port = 9000
|
||||||
|
xdebug.scream = 0
|
||||||
|
xdebug.show_local_vars = 1
|
||||||
|
xdebug.idekey = ${XDEBUG_IDE_KEY}
|
30
share/workflow-github/.docker/production.env.dist
Normal file
30
share/workflow-github/.docker/production.env.dist
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Copy to production.env and store on production machine
|
||||||
|
# Never commit your production details into the repo
|
||||||
|
|
||||||
|
# Host Config
|
||||||
|
MAGE_HOST=https://mage.dev
|
||||||
|
MAGE_ADMIN_USER=admin
|
||||||
|
MAGE_ADMIN_PASS=password123
|
||||||
|
MAGE_ADMIN_FIRSTNAME=Joe
|
||||||
|
MAGE_ADMIN_LASTNAME=Bloggs
|
||||||
|
MAGE_ADMIN_EMAIL=magento@wearejh.com
|
||||||
|
MAGE_BACKEND_FRONTNAME=admin
|
||||||
|
HTTPS=on
|
||||||
|
|
||||||
|
# MySQL Details
|
||||||
|
MYSQL_ROOT_PASSWORD=docker
|
||||||
|
MYSQL_DATABASE=docker
|
||||||
|
MYSQL_USER=docker
|
||||||
|
MYSQL_PASSWORD=docker
|
||||||
|
|
||||||
|
# PHP
|
||||||
|
PHP_MEMORY_LIMIT=2G
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
RABBITMQ_DEFAULT_USER=user
|
||||||
|
RABBITMQ_DEFAULT_PASS=password
|
||||||
|
|
||||||
|
## Xdebug config
|
||||||
|
XDEBUG_IDE_KEY=PHPSTORM
|
||||||
|
XDEBUG_CONFIG=remote_host=10.254.254.254
|
||||||
|
XDEBUG_ENABLE=false
|
33
share/workflow-github/.dockerignore
Normal file
33
share/workflow-github/.dockerignore
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# Ignore .docker to prevent it being copied with COPY ./
|
||||||
|
.docker
|
||||||
|
|
||||||
|
# Unignore these to allow docker build to copy them in
|
||||||
|
!.docker/php
|
||||||
|
!.docker/nginx
|
||||||
|
!.docker/certs
|
||||||
|
!.docker/composer-cache
|
||||||
|
|
||||||
|
docker-compose*.yml
|
||||||
|
.dockerignore
|
||||||
|
|
||||||
|
# Ignore some files we don't need in the containers
|
||||||
|
LICENSE*.txt
|
||||||
|
COPYING.txt
|
||||||
|
.user.ini
|
||||||
|
.travis.yml
|
||||||
|
.php_cs
|
||||||
|
.htaccess
|
||||||
|
*.sample
|
||||||
|
*.md
|
||||||
|
|
||||||
|
Gemfile
|
||||||
|
cap
|
||||||
|
Capfile
|
||||||
|
circle.yml
|
||||||
|
.phpstorm.meta.php
|
||||||
|
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.idea
|
||||||
|
|
||||||
|
node_modules
|
37
share/workflow-github/docker-compose.dev.yml
Normal file
37
share/workflow-github/docker-compose.dev.yml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx:
|
||||||
|
volumes:
|
||||||
|
- .docker/certs:/etc/letsencrypt
|
||||||
|
env_file:
|
||||||
|
- ./.docker/local.env
|
||||||
|
|
||||||
|
php:
|
||||||
|
env_file:
|
||||||
|
- .docker/local.env
|
||||||
|
volumes:
|
||||||
|
- ./app/code/JH:/var/www/app/code/JH
|
||||||
|
|
||||||
|
db:
|
||||||
|
env_file:
|
||||||
|
- ./.docker/local.env
|
||||||
|
volumes:
|
||||||
|
- .docker/db/:/docker-entrypoint-initdb.d/
|
||||||
|
|
||||||
|
# rabbitmq:
|
||||||
|
# env_file:
|
||||||
|
# - ./.docker/local.env
|
||||||
|
|
||||||
|
mail:
|
||||||
|
container_name: m23-mail
|
||||||
|
image: mailhog/mailhog
|
||||||
|
ports:
|
||||||
|
- 1025
|
||||||
|
- 8025:8025
|
||||||
|
|
||||||
|
blackfire:
|
||||||
|
container_name: m23-blackfire
|
||||||
|
image: blackfire/blackfire
|
||||||
|
env_file:
|
||||||
|
- .docker/local.env
|
32
share/workflow-github/docker-compose.prod.yml
Normal file
32
share/workflow-github/docker-compose.prod.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
app-var:
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx:
|
||||||
|
volumes:
|
||||||
|
- /etc/letsencrypt:/etc/letsencrypt
|
||||||
|
env_file:
|
||||||
|
- .docker/production.env
|
||||||
|
|
||||||
|
php:
|
||||||
|
env_file:
|
||||||
|
- .docker/production.env
|
||||||
|
volumes:
|
||||||
|
- app-var:/var/www/var
|
||||||
|
|
||||||
|
db:
|
||||||
|
env_file:
|
||||||
|
- .docker/production.env
|
||||||
|
|
||||||
|
# rabbitmq:
|
||||||
|
# env_file:
|
||||||
|
# - ./.docker/production.env
|
||||||
|
|
||||||
|
# varnish:
|
||||||
|
# image: million12/varnish
|
||||||
|
# ports:
|
||||||
|
# - "80:80"
|
||||||
|
# env_file:
|
||||||
|
# - ./.docker/production.env
|
79
share/workflow-github/docker-compose.yml
Normal file
79
share/workflow-github/docker-compose.yml
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db-data:
|
||||||
|
app-env:
|
||||||
|
|
||||||
|
services:
|
||||||
|
haproxy:
|
||||||
|
image: dockercloud/haproxy:latest
|
||||||
|
links:
|
||||||
|
- varnish
|
||||||
|
environment:
|
||||||
|
- CERT_FOLDER=/certs
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- .docker/certs:/certs
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
|
||||||
|
varnish:
|
||||||
|
image: wearejh/magento-varnish:latest
|
||||||
|
environment:
|
||||||
|
- FORCE_SSL=yes
|
||||||
|
depends_on:
|
||||||
|
- nginx
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
container_name: m23
|
||||||
|
image: nginx:stable-alpine
|
||||||
|
working_dir: /var/www
|
||||||
|
volumes:
|
||||||
|
- .docker/nginx/sites:/etc/nginx/conf.d
|
||||||
|
volumes_from:
|
||||||
|
- php
|
||||||
|
depends_on:
|
||||||
|
- php
|
||||||
|
|
||||||
|
php:
|
||||||
|
container_name: m23-php
|
||||||
|
image: wearejh/m23
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: .docker/php/Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ~/.composer/auth.json:/root/.composer/auth.json
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
ports:
|
||||||
|
- 9000
|
||||||
|
|
||||||
|
db:
|
||||||
|
container_name: m23-db
|
||||||
|
image: mysql:5.6
|
||||||
|
volumes:
|
||||||
|
- db-data:/var/lib/mysql
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: m23-redis
|
||||||
|
image: redis:3-alpine
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
|
||||||
|
# elasticsearch:
|
||||||
|
# container_name: m23-elasticsearch
|
||||||
|
# image: elasticsearch
|
||||||
|
# ports:
|
||||||
|
# - "9200:9200"
|
||||||
|
# - "9300:9300"
|
||||||
|
|
||||||
|
# rabbitmq:
|
||||||
|
# container_name: m23-rabbitmq
|
||||||
|
# image: rabbitmq:3.6.1-management
|
||||||
|
# ports:
|
||||||
|
# - "15672:15672"
|
||||||
|
# - "5672:5672"
|
|
@ -1,3 +1,5 @@
|
||||||
|
source /etc/zshrc
|
||||||
|
|
||||||
## Path
|
## Path
|
||||||
# Default path
|
# Default path
|
||||||
export PATH="/sbin"
|
export PATH="/sbin"
|
||||||
|
@ -195,3 +197,23 @@ function serve_m2 {
|
||||||
php -S "0.0.0.0:15013" "../phpserver/router.php" "../pub"
|
php -S "0.0.0.0:15013" "../phpserver/router.php" "../pub"
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
alias ww='workflow'
|
||||||
|
|
||||||
|
# Initialize workflow with Github
|
||||||
|
function workflow_github {
|
||||||
|
local root="$(findroot "app/code/Magento")"
|
||||||
|
pushd "$root"
|
||||||
|
cp -r "$HOME/dotfiles/share/workflow-github/" "."
|
||||||
|
cat <<'EOF'
|
||||||
|
Initialized workflow Docker and Docker Compose files in the Magento root.
|
||||||
|
|
||||||
|
Configure your volumes to sync what you are working on, edit .docker/local.env
|
||||||
|
and run:
|
||||||
|
|
||||||
|
$ workflow up && workflow mfi
|
||||||
|
|
||||||
|
To install Magento. Happy hacking!
|
||||||
|
EOF
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue