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)/' |
|
||||
# Replace (2 years, 5 months) with (2 years)
|
||||
sed -Ee 's/(^[^<]*), [[:digit:]]+ .*months?\)/\1)/' |
|
||||
# Line columns up based on } delimiter
|
||||
column -s '}' -t |
|
||||
# Color merge commits specially
|
||||
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.
|
||||
if [ -n "$GIT_NO_PAGER" ]; then
|
||||
cat
|
||||
|
|
|
@ -17,7 +17,7 @@ def find_root(filename, starting_dir=None):
|
|||
|
||||
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
|
||||
elif starting_dir == '/':
|
||||
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
|
||||
# Default path
|
||||
export PATH="/sbin"
|
||||
|
@ -195,3 +197,23 @@ function serve_m2 {
|
|||
php -S "0.0.0.0:15013" "../phpserver/router.php" "../pub"
|
||||
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