From 9339997d7e1e8f17817f8088302532def9b3c423 Mon Sep 17 00:00:00 2001 From: Jack Goh Date: Wed, 18 Jul 2018 14:59:45 +0800 Subject: [PATCH] recommit files --- docker-prod.yml | 41 ++++++++++++++++++++++++++++++++++++++++ docker/deploy/Dockerfile | 22 +++++++++++++++++++++ vhost.conf | 36 +++++++++++++++++++++++++++++++++++ web.dockerfile | 5 +++++ 4 files changed, 104 insertions(+) create mode 100644 docker-prod.yml create mode 100644 docker/deploy/Dockerfile create mode 100644 vhost.conf create mode 100644 web.dockerfile diff --git a/docker-prod.yml b/docker-prod.yml new file mode 100644 index 00000000..0ae5fdf4 --- /dev/null +++ b/docker-prod.yml @@ -0,0 +1,41 @@ +version: '2' +services: + + # The Application + app: + build: + context: ./docker/mysql + working_dir: /var/www + volumes: + - /var/www/storage + env_file: '.env' + environment: + - "DB_HOST=database" + - "REDIS_HOST=cache" + + # The Web Server + web: + image: shakyshane/laravel-web + volumes: + - "${LE_DIR}:/etc/letsencrypt" + ports: + - 80:80 + - 443:443 + + # The Database + database: + image: mysql:5.6 + volumes: + - dbdata:/var/lib/mysql + environment: + - "MYSQL_DATABASE=homestead" + - "MYSQL_USER=homestead" + - "MYSQL_PASSWORD=secret" + - "MYSQL_ROOT_PASSWORD=secret" + + # redis + cache: + image: redis:3.0-alpine + +volumes: + dbdata: \ No newline at end of file diff --git a/docker/deploy/Dockerfile b/docker/deploy/Dockerfile new file mode 100644 index 00000000..6917aaaf --- /dev/null +++ b/docker/deploy/Dockerfile @@ -0,0 +1,22 @@ +FROM shakyshane/laravel-php:latest + +COPY composer.lock composer.json /var/www/ + +COPY database /var/www/database + +WORKDIR /var/www + +RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ + && php composer-setup.php \ + && php -r "unlink('composer-setup.php');" \ + && php composer.phar install --no-dev --no-scripts \ + && rm composer.phar + +COPY . /var/www + +RUN chown -R www-data:www-data \ + /var/www/storage \ + /var/www/bootstrap/cache + +RUN php artisan optimize \ No newline at end of file diff --git a/vhost.conf b/vhost.conf new file mode 100644 index 00000000..fc132d04 --- /dev/null +++ b/vhost.conf @@ -0,0 +1,36 @@ +server { + server_name localhost; + listen 443 ssl http2 default_server; + listen [::]:443 ssl http2 default_server; + + ssl_certificate /etc/letsencrypt/live/exchange-staging.izyim.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/exchange-staging.izyim.com/privkey.pem; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; + ssl_session_timeout 1d; + ssl_session_cache shared:SSL:50m; + add_header Strict-Transport-Security max-age=15768000; + + index index.php index.html; + root /var/www/public; + + location / { + try_files $uri /index.php?$args; + } + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass app:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } +} + +server { + listen 80; + listen [::]:80; + return 301 https://$host$request_uri; +} \ No newline at end of file diff --git a/web.dockerfile b/web.dockerfile new file mode 100644 index 00000000..4145dc72 --- /dev/null +++ b/web.dockerfile @@ -0,0 +1,5 @@ +FROM nginx:1.10-alpine + +ADD vhost.conf /etc/nginx/conf.d/default.conf + +COPY public /var/www/public \ No newline at end of file